반응형 자바101 자바 소스코드: 스레드 충돌 예제 package javaapplication28; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; //공유 데이터인 집계판을 시뮬레이션하는 클래스 //두 WorkerThread 스레드에 의해 동시 접근함 class SyncObject{ int sum=0;//집계판의 합 //synchronized 삭제 하였을 때 void add(){ int n=sum; Thread.yield(); n+=10;//10을 증가시킨다. sum=n;//증가한 값을 누적 시킨다. System.out.println(Thread.currentThread().getName()+":"+sum); } int getSum().. 2016. 11. 14. 자바 소스코드: 스레드 충돌 방지 예제 package javaapplication27; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; //공유 데이터인 집계판을 시뮬레이션하는 클래스 //두 WorkerThread 스레드에 의해 동시 접근함 class SyncObject{ int sum=0;//집계판의 합 synchronized void add(){ int n=sum; Thread.yield(); n+=10;//10을 증가시킨다. sum=n;//증가한 값을 누적 시킨다. System.out.println(Thread.currentThread().getName()+":"+sum); } int getSum(){return sum.. 2016. 11. 14. 자바 소스코드: ThreadFinishingFlag 예제(Java 무한 생산) package javaapplication26; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; class ThreadFinishFlagEx extends JFrame{ ThreadFinishFlagEx(){ this.setTitle("ThreadFinishFlag 예제"); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container c = this.getContentPane(); RandomThread rt = new RandomThread(c);//스레드 생성 c.addMouseListener(new MouseListener(){.. 2016. 11. 14. 자바 소스코드: 스레드 호출순서 정하기 예제 package javaapplication25; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; class TimerThread extends Thread{ int n=0; boolean flag = false;//false로 초기화 public void finish() { flag=true;}//finish함수가 호출되면 종료 public void run(){ while(true){ System.out.print(n++);//화면에 카운트 값 출력 try{ sleep(1000); if(flag==true) return;//스레드 종료 } catch(Exception e){return;.. 2016. 11. 14. 이전 1 ··· 3 4 5 6 7 8 9 ··· 26 다음 반응형