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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

一道多线程编程题

發布時間:2023/11/27 生活经验 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一道多线程编程题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
有意思的一道多線程編程題 請用多線程顯示,每三個數字為一組,直到30 線程A:1
線程A:2
線程A:3
線程B:4
線程B:5
線程B:6

線程A:7
線程A:8
線程A:9 public class Test{ ??? public static Object obj = new Object(); ??? public static void main(String[] args){ ??????? new A().start(); ??????? new B().start(); ??? } } class A extends Thread{ ??? public void run(){ ??????? try{ ??????????? synchronized(Test.obj){ ??????????????? for(int i = 1 ; i < 31;i += 6){ ??????????????????? Test.obj.notify(); ??????????????????? System.out.println("線程A:"+ i); ??????????????????? System.out.println("線程A:"+ (i+1)); ??????????????????? System.out.println("線程A:"+ (i+2)); ??????????????????? Test.obj.wait(); ??????????????? } ??????????? } ??????? }catch(Exception e){ ??????????? e.printStackTrace(); ??????? } ??? } } class B extends Thread{ ??? public void run(){ ??????? try{ ??????????? synchronized(Test.obj){ ??????????????? for(int i = 4 ; i < 31;i += 6){ ??????????????????? Test.obj.notify(); ??????????????????? System.out.println("線程B:"+ i); ??????????????????? System.out.println("線程B:"+ (i+1)); ??????????????????? System.out.println("線程B:"+ (i+2)); ??????????????????? Test.obj.wait(); ??????????????? } ??????????? } ??????? }catch(Exception e){ ??????????? e.printStackTrace(); ??????? } ??? } } sleep()? 和? wait()? 有什么區別 ?
sleep是線程類(Thread)的方法,導致此線程暫停執行指定時間,給執行機會給其他線程,但是監控狀態依然保持,到時后會自動恢復。調用sleep不會釋放對象鎖。

wait是Object類的方法,對此對象調用wait方法導致本線程放棄對象鎖,進入等待此對象的等待鎖定池,只有針對此對象發出notify方法(或notifyAll)后本線程才進入對象鎖定池準備獲得對象鎖進入運行狀態。

轉載于:https://www.cnblogs.com/lxm123/p/3711848.html

總結

以上是生活随笔為你收集整理的一道多线程编程题的全部內容,希望文章能夠幫你解決所遇到的問題。

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