多线程的执行顺序

    xiaoxiao2021-03-25  57

    多线程执行顺序

    代码块

    /** * 多线程,线程池执行原理 */ ExecutorService executorService = Executors.newFixedThreadPool(2); executorService.execute(new Runnable() { @Override public void run() { int j =0; while (true){ j++; LoggerUtil.dLog().e("==========="+j); handler.sendEmptyMessage(j); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } if(j==2){ break; } } } }); executorService.execute(new Runnable() { @Override public void run() { int j =3; while (true){ j++; LoggerUtil.dLog().e("==========="+j); handler.sendEmptyMessage(j); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } if(j==5){ break; } } } }); executorService.execute(new Runnable() { @Override public void run() { int j =6; while (true){ j++; LoggerUtil.dLog().e("==========="+j); handler.sendEmptyMessage(j); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } if(j==8){ break; } } } });

    ###线程执行结果: 03-13 02:18:18.507 16994-3060/com.example.chaoren.myapplication E/cyc: cyc[ pool-4-thread-1: ButtonBActivity.java:51 run ] - =========1 03-13 02:18:18.507 16994-3061/com.example.chaoren.myapplication E/cyc: cyc[ pool-4-thread-2: ButtonBActivity.java:70 run ] - =j4 03-13 02:18:19.437 505-1800/? E/audio_hw_primary: [MAXIM] setDSM_tx_Control()…dsm_enable : 0, dsm_opened : 1, adev->mode : 0 03-13 02:18:19.517 16994-3060/com.example.chaoren.myapplication E/cyc: cyc[ pool-4-thread-1: ButtonBActivity.java:51 run ] - =====2 03-13 02:18:19.517 16994-3061/com.example.chaoren.myapplication E/cyc: cyc[ pool-4-thread-2: ButtonBActivity.java:70 run ] - =j5 03-13 02:18:20.517 16994-3060/com.example.chaoren.myapplication E/cyc: cyc[ pool-4-thread-1: ButtonBActivity.java:89 run ] - =j7 03-13 02:18:21.517 16994-3060/com.example.chaoren.myapplication E/cyc: cyc[ pool-4-thread-1: ButtonBActivity.java:89 run ] - =j8 新建一个固定线程池,为2,看到前两个runnable在同时执行,执行完毕后再执行第三个

    转载请注明原文地址: https://ju.6miu.com/read-38341.html

    最新回复(0)