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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java线程相关

發(fā)布時(shí)間:2025/3/17 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java线程相关 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?Java線程相關(guān)(Thread和Runnable)

?

隨便打開(kāi)一個(gè)應(yīng)用程序,即使這個(gè)程序很小,它也可能是由N多個(gè)線程所構(gòu)成,在沒(méi)有線程之前,我們用進(jìn)程作為OS(操作系統(tǒng))能夠擁有資源和獨(dú)立運(yùn)行的基本單位。 我們要討論的線程是比進(jìn)程更小的,能夠獨(dú)立運(yùn)行和擁有資源的基本單位。

說(shuō)到線程,我們就得分析一下一個(gè)線程的各種狀態(tài),它大體上可以分為以下幾種:

1 執(zhí)行狀態(tài):線程獲得了處理機(jī)正在運(yùn)行。

2 阻塞狀態(tài):線程因?yàn)槟撤N原因而暫停運(yùn)行。

3 就緒狀態(tài):線程已經(jīng)準(zhǔn)備好運(yùn)行,只要分配cpu就可以運(yùn)行。

既然我們知道了線程能夠擁有資源和獨(dú)立運(yùn)行的基本單位,那么對(duì)于N個(gè)線程需要對(duì)一個(gè)相同的資源進(jìn)行訪問(wèn)的情況會(huì)遇到什么問(wèn)題呢。讓我們看看下面的代碼:

?

Java代碼
  • public class RunnableTest implements Runnable{
  • private int a = 0;
  • public void run() {
  • while(a>-10){
  • a--;
  • System.out.println("a" + "的值為" + a);
  • }
  • }
  • }
  • public class RunnableTest implements Runnable{private int a = 0;public void run() {while(a>-10){a--;System.out.println("a" + "的值為" + a);}} } Java代碼
  • public class ThreadTest extends Thread {
  • private int a = 0;
  • public void run() {
  • while (a > -10) {
  • a--;
  • System.out.println("a" + "的值為" + a);
  • }
  • }
  • }
  • public class ThreadTest extends Thread {private int a = 0;public void run() {while (a > -10) {a--;System.out.println("a" + "的值為" + a);}} } 上面是實(shí)現(xiàn)多線程的兩種方法,其中一種為繼承Thread類(lèi),另一種為實(shí)現(xiàn)Runnable接口。但不論哪一種方法,進(jìn)行下面的測(cè)試 Java代碼
  • public class Test {
  • public static void main(String[] args) {
  • ThreadTest thread_0 = new ThreadTest();
  • new Thread(thread_0).start();
  • new Thread(thread_0).start();
  • // RunnableTest rt = new RunnableTest();
  • // new Thread(rt).start();
  • // new Thread(rt).start();
  • }
  • }
  • public class Test {public static void main(String[] args) {ThreadTest thread_0 = new ThreadTest();new Thread(thread_0).start();new Thread(thread_0).start(); // RunnableTest rt = new RunnableTest(); // new Thread(rt).start(); // new Thread(rt).start();} } 多次運(yùn)行可能會(huì)有一種下面狀況。

    轉(zhuǎn)載于:https://blog.51cto.com/ajiao13/1133464

    總結(jié)

    以上是生活随笔為你收集整理的java线程相关的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。