91精产品自偷自偷综合官网版下载-91精产品自偷自偷综合下-91精品-91精品91久久久-91精品成人-91精品成人www

網(wǎng)站建設(shè)資訊

NEWS

網(wǎng)站建設(shè)資訊

java多線程代碼,Java 多線程編程

多線程的java 程序如何編寫?

Java 給多線程編程提供了內(nèi)置的支持。 一條線程指的是進(jìn)程中一個單一順序的控制流,一個進(jìn)程中可以并發(fā)多個線程,每條線程并行執(zhí)行不同的任務(wù)。

創(chuàng)新互聯(lián)建站專注于合陽網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供合陽營銷型網(wǎng)站建設(shè),合陽網(wǎng)站制作、合陽網(wǎng)頁設(shè)計、合陽網(wǎng)站官網(wǎng)定制、小程序設(shè)計服務(wù),打造合陽網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供合陽網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

新建狀態(tài):

使用 new 關(guān)鍵字和 Thread 類或其子類建立一個線程對象后,該線程對象就處于新建狀態(tài)。它保持這個狀態(tài)直到程序 start() 這個線程。

就緒狀態(tài):

當(dāng)線程對象調(diào)用了start()方法之后,該線程就進(jìn)入就緒狀態(tài)。就緒狀態(tài)的線程處于就緒隊列中,要等待JVM里線程調(diào)度器的調(diào)度。

運(yùn)行狀態(tài):

如果就緒狀態(tài)的線程獲取 CPU 資源,就可以執(zhí)行 run(),此時線程便處于運(yùn)行狀態(tài)。處于運(yùn)行狀態(tài)的線程最為復(fù)雜,它可以變?yōu)樽枞麪顟B(tài)、就緒狀態(tài)和死亡狀態(tài)。

阻塞狀態(tài):

如果一個線程執(zhí)行了sleep(睡眠)、suspend(掛起)等方法,失去所占用資源之后,該線程就從運(yùn)行狀態(tài)進(jìn)入阻塞狀態(tài)。在睡眠時間已到或獲得設(shè)備資源后可以重新進(jìn)入就緒狀態(tài)。可以分為三種:

等待阻塞:運(yùn)行狀態(tài)中的線程執(zhí)行 wait() 方法,使線程進(jìn)入到等待阻塞狀態(tài)。

同步阻塞:線程在獲取 synchronized 同步鎖失敗(因為同步鎖被其他線程占用)。

其他阻塞:通過調(diào)用線程的 sleep() 或 join() 發(fā)出了 I/O 請求時,線程就會進(jìn)入到阻塞狀態(tài)。當(dāng)sleep() 狀態(tài)超時,join() 等待線程終止或超時,或者 I/O 處理完畢,線程重新轉(zhuǎn)入就緒狀態(tài)。

死亡狀態(tài):

一個運(yùn)行狀態(tài)的線程完成任務(wù)或者其他終止條件發(fā)生時,該線程就切換到終止?fàn)顟B(tài)。

java線程的經(jīng)典代碼

package threadgroup;

class ThreadDemo3 extends Thread {

private String name;

private int delay;

public ThreadDemo3(String sname, int i_delay) {

name = sname;

delay = i_delay;

}

public void run() {

try {

sleep(delay);

} catch (InterruptedException e) {

}

System.out.println("多線程測試!\n" + name + "\n" + delay);

}

}

public class testMyThread {

public static void main(String[] args) {

ThreadDemo3 th1,th2,th3;

th1 = new ThreadDemo3("線程1", (int) (Math.random() * 900));

th2 = new ThreadDemo3("線程2", (int) (Math.random() * 900));

th3 = new ThreadDemo3("線程3", (int) (Math.random() * 900));

th1.start();

th2.start();

th3.start();

}

}

package threadgroup;

public class threadDemo {

public static void main(String[] args) {

Thread t = Thread.currentThread();

t.setName("你好嗎?");

System.out.println("正在進(jìn)行的Thread是:" + t);

try {

for (int i = 0; i 5; i++) {

System.out.println("我不叫穆繼超" + i);

Thread.sleep(3000);

}

} catch (Exception e) {

// TODO: handle exception

System.out.println("Thread has wrong" + e.getMessage());

}

}

}

package threadgroup;

public class threadDemo2 implements Runnable {

public threadDemo2() {

Thread t1 = Thread.currentThread();

t1.setName("第一個主進(jìn)程");

System.out.println("正在運(yùn)行" + t1);

Thread t2 = new Thread(this, "");

System.out.println("在創(chuàng)建一個進(jìn)程");

t2.start();

try {

System.out.println("使他進(jìn)入第一個睡眠狀態(tài)");

Thread.sleep(2000);

} catch (InterruptedException e) {

System.out.println("Thread has wrong" + e.getMessage());

}

System.out.println("退出第一個進(jìn)程");

}

public void run() {

try {

for (int i = 0; i 5; i++) {

System.out.println("進(jìn)程" + i);

Thread.sleep(3000);

}

} catch (InterruptedException e) {

// TODO: handle exception

System.out.println("Thread has wrong" + e.getMessage());

}

System.out.println("退出第二個進(jìn)程");

}

public static void main(String[] args) {

new threadDemo2();

}

}

java多線程編程代碼如下,輸出結(jié)果如下:

首先,你同步的是具體的某個Test實例, 對于那個實例來說,實際上只有一個線程訪問了那個代碼塊,但是sum和other卻是多個線程同時去進(jìn)行訪問,實際上這是不安全的,如果你想實現(xiàn)每次都輸出10000的效果,那么正確的應(yīng)該是在Test.class上加鎖,而不是獲取Test實例的鎖,修改后的代碼如下:

public?class?Test?extends?Thread?{

public?static?int?sum?=?10000;

public?static?int?other?=?0;

public?void?getMoney()?{

synchronized?(Test.class)?{

System.out.println(Thread.currentThread().getName()?+?"?開始執(zhí)行");

sum?=?sum?-?100;

System.out.println("sum-100");

other?=?other?+?100;

System.out.println("other+100");

System.out.println(sum?+?other);

System.out.println(Thread.currentThread().getName()?+?"?執(zhí)行完成");

}

}

public?void?run()?{

getMoney();

}

public?static?void?main(String[]?agrs)?{

Thread?t[]?=?new?Thread[10];

for?(int?i?=?0;?i?=?9;?i++)?{

t[i]?=?new?Test();

t[i].start();

}

}

}

// 上面代碼能得到你的結(jié)果


網(wǎng)站欄目:java多線程代碼,Java 多線程編程
瀏覽路徑:http://www.yuzhuanjia.cn/article/dsedgcc.html
主站蜘蛛池模板: 91无码人妻一区 | 高清成人爽a毛片免费 | 97夜夜澡人人爽人人模人人喊 | 福利视频91| av无码国产精品麻豆天美 | 99内射国产灌醉迷晕在线精品 | 午夜福利精品a在线观看 | 午夜一区二区久久久 | 午夜影视在线播 | 果冻传媒一二三区 | 国产爱豆| 波多野结衣av | 丰满的少妇 | 白领少妇会所按摩推油 | 一区二区三区影院动漫 | 波多野结衣免费免费视频一区 | 91超碰人人澡人 | 二区亚洲精品国产片 | 99精品国产在热久久无码 | 成人性爱 | 斗破苍穹第5季全集免费观看 | 91麻豆剧果 | 午夜私人影院免费 | 久久久久久久九九九九 | 午夜三级精品一区二区 | av天堂中文在线 | 91精品午夜福利在线观看入口 | 99久久免费只有精品国产高潮欧美综合直播三区 | 午夜福利在线观看 | 波多野结衣av一区二区全免费观 | 成人日日射视频 | 丰满少妇人妻hd高清 | 午夜在线视频国产极品片 | 一区二区三区爱妻 | 一区二区精品视频 | 一区二区又大又黄又嫩 | 97精品人人A片免费看 | 91精品国产91久久久久久最新 | 成年女人 | 91精品国产麻豆福利在线电影 | 99精品免费久久久久久久久蜜桃 |