<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    中文JAVA技術平等自由協作創造

    Java專題文章博客和開源

    常用鏈接

    統計

    最新評論

    java多線程中測試同步的小程序

      這是我做的一個很簡單的多線程同步程序,目的是為了測試多線程編程下如何使用同步(synchronized)防止產生競爭共享資源的錯誤狀態,從中得到的心得是:一定要將你所共享的變量封裝在一個類中,將所有有關該變量的操作方法都盡可能地封裝在包含該變量的類中,并將所有有關讀取修改該共享變量的方法都設為同步方法,只有這樣才是安全的,并且該變量必須是private類型,主要是為了防止其他對象無意讀取到該變量而使該變量的同步形同虛設!因為你可以不通過同步方法直接對該共享變量進行操作!不說了,下面來看代碼吧!我還在代碼中加了一個計時器類Timer類,這個類可以產生一個后臺線程,專門用于計時到指定時間或延時一定時間就去執行TimeTask線程對象任務雅思答案
     
       package xinyu.shangrao.demo.fucking;
     
       import java.util.Date;
     
       import java.text.ParseException;
     
       import java.util.Timer;
     
       import java.util.TimerTask;
     
       import java.util.concurrent.TimeUnit;
     
       public class ThreadDemoNew {
     
       public static void main(String[] args) throws ParseException {
     
       long counter;
     
       /* Date date = null;
     
       String s = "2013-05-29 上午08:26 ";
     
       SimpleDateFormat sdf = new SimpleDateFormat();
     
       date = sdf.parse(s);
     
       System.out.println("------系統默認無參數Date的parse------");
     
       System.out.println(" " +date.getTime() );
     
       counter=date.getTime();
     
       System.out.println(" " + date ); */
     
       Date tim=new Date();
     
       counter=tim.getTime();
     
       tim.setTime(counter+9000);
     
       new Timer().schedule(new TimerTask(){ //到指定時間就去執行這個指定任務,這里是退出操作
     
       public void run(){
     
       System.out.println("時間到:");
     
       System.exit(0);
     
       }
     
       }, tim );
     
       EventKey ke=new EventKey();
     
       Thread1 demo1=new Thread1(ke) ;
     
       Thread2 demo2=new Thread2(ke) ;
     
       demo1.start();
     
       demo2.start();
     
       }
     
       }
     
       class Thread1 extends Thread{
     
       private EventKey ek;
     
       private int ko;
     
       public Thread1(EventKey e){
     
       ek=e;
     
       }
     
       public void run(){
     
       synchronized(this){
     
       while(true){
     
       ko=ek.next();
     
       System.out.println(Thread.currentThread()+"ko:"+ko);
     
       if(ko % 2 !=0 ){
     
       System.out.println("輸出的是奇數");
     
       System.exit(0);
     
       }
     
       }}}
     
       }
     
       class Thread2 extends Thread{
     
       private EventKey ek;
     
       private int ko;
     
       public Thread2(EventKey e){
     
       ek=e;
     
       }
     
       public void run(){
     
       synchronized(this){
     
       while(true){
     
       ko=ek.next();
     
       System.out.println(Thread.currentThread()+"ko:"+ko);
     
       if(ko % 2 !=0 ){
     
       System.out.println("輸出的是奇數");
     
       System.exit(0);
     
       }
     
       }}}
     
       }
     
       class EventKey implements IntGenerator{
     
       private int i=0;
     
       synchronized public int next(){
     
       i++;
     
       i++;
     
       try{
     
       TimeUnit.MILLISECONDS.sleep(1000);
     
       }catch(InterruptedException e){
     
       System.out.println(e);
     
       }
     
       return i;
     
       }
     
       }
     
       interface IntGenerator{
     
       public int next();
     
       }
     
       現實當中將對共享資源的共有操作方法放在接口或抽象類,這樣在通過繼承抽象類或實現這個接口可以得到更好的效果!這樣代碼也更清晰,更有層次感雅思改分

    posted on 2013-06-09 23:01 好不容易 閱讀(163) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    PK10開獎 PK10開獎
    主站蜘蛛池模板: 亚洲精品无码专区在线| 91视频精品全国免费观看| 国产偷国产偷亚洲高清日韩| 亚洲熟妇AV日韩熟妇在线| 亚洲精品国产成人片| 成在线人永久免费视频播放| 免费国产a国产片高清网站| 91精品免费观看| 人妻无码中文字幕免费视频蜜桃 | 色噜噜的亚洲男人的天堂| 亚洲av日韩av不卡在线观看| 亚洲欧洲综合在线| 亚洲第一AAAAA片| 亚洲日本香蕉视频| 激情婷婷成人亚洲综合| 在线观看免费黄网站| 日本视频一区在线观看免费| 四虎成人免费影院网址| 一区二区无码免费视频网站| 国产精品国产免费无码专区不卡 | 亚洲精品无码午夜福利中文字幕 | 亚洲日韩精品无码一区二区三区| 国产免费啪嗒啪嗒视频看看| 亚洲色欲色欲www在线丝| 亚洲六月丁香六月婷婷色伊人| 亚洲黄色网址大全| 久久久久亚洲av无码专区| 亚洲国产精品自在在线观看| 亚洲人成电影网站久久| 国产免费高清69式视频在线观看| 成人免费网站视频www| 亚洲最大av资源站无码av网址| 亚洲第一精品电影网| 蜜芽亚洲av无码一区二区三区| 亚洲国产成人AV在线播放| 亚洲中文字幕一区精品自拍| 国产精品美女久久久免费| 巨胸喷奶水www永久免费| 好男人www免费高清视频在线| 亚洲香蕉网久久综合影视| 亚洲久悠悠色悠在线播放|