日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux java多线程_Java多线程从简单到复杂

發布時間:2025/3/15 linux 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux java多线程_Java多线程从简单到复杂 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 輸出數字

(1) 多線程操作全局變量任務

package c;

/**

* @author ZTX

* (1) 多線程操作全局變量任務

* 2013-12-14 21:49:17

*

*

*/

public class MyThread implements Runnable

{

private static int i=0;

public MyThread(){

}

@Override

public void run(){

i++;

System.out.println("i="+i);

}

}

(2) 為這個任務開三個線程

private static void testImport3() {

MyThread imp=new MyThread();

Thread t;

for(int i=0;i<3;i++){//開3個線程

t=new Thread(imp);

t.start();

}

}

(3) 輸出結果

i=2

i=3

i=2

2 同步

避免一個數字拿出來處理前被另一個線程拿出來,兩個線程處理之后返回了同一種結果(本應該是兩種)

(1) 加鎖

package c;

import Java.util.concurrent.locks.Lock;

import java.util.concurrent.locks.ReentrantLock;

/**

* @author ZTX

* (1) 多線程操作全局變量

* 2013-12-14 21:49:17

* (2) 同步

* 2013-12-14 22:12:19

*

*/

public class MyThread implements Runnable

{

private static int i=0;

public MyThread(){

}

private static Lock lock=new ReentrantLock();

@Override

public void run(){

lock.lock();

try {

i++;

System.out.println("i="+i);

} catch (Exception e) {

e.printStackTrace();

}finally{

lock.unlock();

}

}

}

(2)增加線程數驗證同步

private static void testImport3() {

MyThread imp=new MyThread();

Thread t;

for(int i=0;i<30;i++){//開3個線程

t=new Thread(imp);

t.start();

}

}

(3)輸出結果

i=1

i=2

i=3

i=4

i=5

i=6

i=7

i=8

i=9

i=10

i=11

i=12

i=13

i=14

i=15

i=16

i=17

i=18

i=19

i=20

i=21

i=22

i=23

i=24

i=25

i=26

i=27

i=28

i=29

i=30

3

4

5

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的linux java多线程_Java多线程从简单到复杂的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。