Java基礎 乙個有問題的多執行緒程式

2021-06-27 22:29:43 字數 1151 閱讀 4671

package cn.itcast_08;

public class sellticket implements runnable catch (interruptedexception e)

//// system.out.println(thread.currentthread().getname() + "正在**第"

// + (tickets--) + "張票");

// // 理想狀態:

// // 視窗1正在**第100張票

// // 視窗2正在**第99張票

// // 但是呢?

// // cpu的每一次執行必須是乙個原子性(最簡單基本的)的操作。

// // 先記錄以前的值

// // 接著把ticket--

// // 然後輸出以前的值(t2來了)

// // ticket的值就變成了99

// // 視窗1正在**第100張票

// // 視窗2正在**第100張票

//// }

// }

// }

@override

public void run() catch (interruptedexception e)

system.out.println(thread.currentthread().getname() + "正在**第"

+ (tickets--) + "張票");

//視窗1正在**第1張票,tickets=0

//視窗2正在**第0張票,tickets=-1

//視窗3正在**第-1張票,tickets=-2

}} }

}

package cn.itcast_08;

/* * 實現runnable介面的方式實現

* * 通過加入延遲後,就產生了連個問題:

* a:相同的票賣了多次

* cpu的一次操作必須是原子性的

* b:出現了負數票

* 隨機性和延遲導致的

*/public class sellticketdemo

}

乙個多執行緒同步問題

昨天,路過的時候,發現了這個問題 class syncclass catch exception e system.out.println class test implements runnable public void run 輸出結果如圖 其實synchronized void synmth...

乙個有趣的多執行緒問題

師弟問了個非常有趣的多執行緒問題,之前沒有關注,這裡寫下自己的心得。對於如下 include include include uint winapi fun1proc lpvoid lpparameter uint winapi fun2proc lpvoid lpparameter int ind...

JAVA多執行緒的乙個簡單案例

只有四個類,前面三個介紹執行緒的休眠喚醒以及結束 最後乙個類是乙個單獨的小例子 建議先看最後的在看前面的 package com.imooc.concurrent.base 隋唐演義大戲舞台 public class stage extends thread catch interruptedexc...