Java线程通信

Java线程通信

 

      螣蛇乘雾,终为土灰。

 

多个线程协同工作完成某个任务时就会涉及到线程间通信问题。如何使各个线程之间同时执行,顺序执行、交叉执行等。

一、线程同时执行

创建两个线程a和b,两个线程内调用同一个打印 1-3 三个数字的方法。

 1 package tjt;
 2 
 3 import java.time.LocalDate;
 4 
 5 public class Test {
 6 
 7     /**
 8      * 创建两个线程a和b,两个线程内调用同一个打印 1-3 三个数字的方法。
 9      */
10     private static void situationOne() {
11         Thread a = new Thread(new Runnable() {
12             @Override
13             public void run() {
14                 doSomething("a");
15             }
16         });
17         Thread b = new Thread(new Runnable() {
18             @Override
19             public void run() {
20                 doSomething("b");
21             }
22         });
23         a.start();
24         b.start();
25     }
26 
27     /**
28      * 依次打印 1, 2, 3 三个数字
29      *
30      * @param threadName
31      */
32     private static void doSomething(String threadName) {
33         int i = 0;
34         while (i++ < 3) {
35             try {
36                 Thread.sleep(200);
37             } catch (InterruptedException e) {
38                 e.printStackTrace();
39             }
40             System.out.println(LocalDate.now() + " Thread " + threadName + " is doing, printing: " + i);
41         }
42     }
43 
44     public static void main(String[] args) {
45         situationOne();
46     }
47 }
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » Java线程通信