最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java線程重復執(zhí)行以及操作共享變量的代碼示例

 更新時間:2015年12月08日 15:02:43   投稿:goldensun  
這篇文章主要介紹了Java中對線程重復執(zhí)行以及操作共享變量的代碼示例,來自于Java面試題目的練習整理,需要的朋友可以參考下

1.題目:主線程執(zhí)行10次,子線程執(zhí)行10次,此過程重復50次

代碼:

package com.Thread.test;
/*
 * function:主線程執(zhí)行10次,子線程執(zhí)行10次,
 * 此過程重復50次
 */
public class ThreadProblem {

 public ThreadProblem() {
 
 final Business bus = new Business();
 new Thread(new Runnable() {
  
  public void run() {
  
  for(int j=0;j<50;j++) {
   
   bus.sub(j);
  }
  }
 }).start();
 
 for(int j=0;j<50;j++) {
  
  bus.main(j);
 }
 }
 class Business {
 
 private boolean tag=true;
 public synchronized void sub(int num) {
  
  if(!tag) {
  
  try {
   this.wait();
  } catch (InterruptedException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  }
  for(int i=0;i<10;i++)
  {
  System.out.println("sub thread "+i+",loop "+num+".");
  }
  
  tag=false;
  notify();
 }
 
 public synchronized void main(int num) {
  
  if(tag) {
  
  try {
   this.wait();
  } catch (InterruptedException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  }
  for(int i=0;i<10;i++) {
  
  System.out.println("main thread "+i+",loop "+num+".");
  }
  
  tag=true;
  notify();
 }
 }
 
 public static void main(String[] args) {
 
 ThreadProblem problem = new ThreadProblem();
 }
}


2.四個線程,共享一個變量j,其中兩個線程對j加1,兩個線程對j減1。

代碼如下:

package com.Thread.test;
//實現4個線程,兩個線程加1,兩個線程減1
public class Demo1 {

 private static int j=0;
 private A a = new A();
 //構造函數
 public Demo1() {
 
 System.out.println("j的初始值為:"+j);
 for(int i=0;i<2;i++) {
  
  new Thread(new Runnable(){
  
  public void run() {
   
   for(int k=0;k<5;k++){
   a.add1();
   }
  }
  }).start();
  
  new Thread(new Runnable(){
  
  public void run() {
   
    for(int k=0;k<5;k++)
    {
   a.delete1();
    }
  }
  }).start();
 }
 }
 class A {
 
 public synchronized void add1() {
  
  j++;
  System.out.println(Thread.currentThread().getName()+"對j加1,目前j="+Demo1.j);
 }
 
    public synchronized void delete1() {
  
  j--;
  System.out.println(Thread.currentThread().getName()+"對j減1,目前j="+Demo1.j);
 }
 }
 
 //用于測試的主函數
 public static void main(String[] args) {
 
 Demo1 demo = new Demo1();
 }
}

相關文章

  • 詳解SpringBean基于XML的裝配

    詳解SpringBean基于XML的裝配

    Bean的裝配可以理解為依賴關系注入,Bean的裝配方式也就是Bean 的依賴注入方式.Spring容器支持多種形式的Bean的裝配方式,如基于XML的Bean裝配,基于Annotation的Bean裝配和自動裝配等.本文就帶大家了解SpringBean基于XML的裝配,需要的朋友可以參考下
    2021-05-05
  • Maven將代碼及依賴打成一個Jar包的方式詳解(最新推薦)

    Maven將代碼及依賴打成一個Jar包的方式詳解(最新推薦)

    這篇文章主要介紹了Maven將代碼及依賴打成一個Jar包的方式,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • Spring中@Scheduled注解的參數詳解

    Spring中@Scheduled注解的參數詳解

    這篇文章主要介紹了Spring中@Scheduled注解的參數詳解,@Scheduled注解的使用這里不詳細說明,@Scheduled注解有幾個參數需要說明一下,直接對8個參數進行講解,需要的朋友可以參考下
    2023-11-11
  • SpringBoot注解篇之@Resource與@Autowired的使用區(qū)別

    SpringBoot注解篇之@Resource與@Autowired的使用區(qū)別

    @Resource 注解和 @Autowired 注解都是在 Spring Framework 中進行依賴注入的注解,那么你知道他們有什么區(qū)別嗎,本文就來介紹一下
    2023-12-12
  • Java數組拷貝的幾種方法小結

    Java數組拷貝的幾種方法小結

    本文主要介紹了Java數組拷貝的幾種方法小結,包括for循環(huán)、System.arraycopy()、Arrays.copyOf()、Arrays.copyOfRange()和clone()方法,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • 聊一聊SpringBoot服務監(jiān)控機制

    聊一聊SpringBoot服務監(jiān)控機制

    這篇文章主要介紹了聊一聊SpringBoot服務監(jiān)控機制,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • Java設計模式中的抽象工廠模式解讀

    Java設計模式中的抽象工廠模式解讀

    這篇文章主要介紹了Java設計模式中的抽象工廠模式解讀,抽象工廠模式為創(chuàng)建一組相關或相互依賴的對象提供一個接口,而且無需指定他們的具體類,需要的朋友可以參考下
    2023-11-11
  • 匯總Java中List 去重的 6 種方法

    匯總Java中List 去重的 6 種方法

    這篇文章主要介紹了匯總Java中List 去重的 6 種方法,文章圍繞主題展開List去重的方法,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-05-05
  • java子類繼承父類實例-披薩的選擇實現代碼

    java子類繼承父類實例-披薩的選擇實現代碼

    這篇文章主要介紹了java子類繼承父類實例-披薩的選擇實現代碼,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • Java兩種方式實現動態(tài)代理

    Java兩種方式實現動態(tài)代理

    Java 在 java.lang.reflect 包中有自己的代理支持,該類(Proxy.java)用于動態(tài)生成代理類,只需傳入目標接口、目標接口的類加載器以及 InvocationHandler 便可為目標接口生成代理類及代理對象。我們稱這個Java技術為:動態(tài)代理
    2020-10-10

最新評論

若羌县| 讷河市| 福州市| 武宁县| 开鲁县| 新余市| 酒泉市| 谢通门县| 磐石市| 青冈县| 正蓝旗| 苏尼特左旗| 固安县| 苗栗县| 龙川县| 聊城市| 龙江县| 界首市| 类乌齐县| 建湖县| 连南| 余庆县| 青岛市| 柳江县| 莱阳市| 长兴县| 湘潭市| 成武县| 张家港市| 高陵县| 易门县| 达拉特旗| 凭祥市| 青海省| 万年县| 登封市| 定襄县| 南召县| 曲阜市| 咸阳市| 曲阳县|