執行緒Thread練習題1買票,使用多執行緒的方式模擬四個視窗賣100張票
package com.briup.day19;
import work.Person;
/**
* 5.使用多執行緒的方式來模擬多個視窗買票
要求銷售100張火車票,要求有4個視窗來進行銷售, 請編寫多執行緒程式來模擬這個效果
* @author MECHREVO
*
*/
public class WorkSell extends Thread{
public WorkSell() {
}
public WorkSell(String name) {
super(name);
}
static WorkSell s1 = new WorkSell();
//定義票數為靜態變數,所有物件共用一個
public static int i=100;
@Override
public void run() {
while(true) {
//加鎖實現執行緒同步
synchronized (s1) {
if(i>0) {
System.out.println(getName()+":正在售賣第---->"+(i--)+"張票");
try {
sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else {
System.err.println(getName()+"票已經售完!!!");
break;
}
}
}
}
}
主函式
package com.briup.day19;
public class WorkTest {
private WorkSell work;
public static void main(String[] args) {
WorkSell w1 = new WorkSell("視窗1");
WorkSell w2 = new WorkSell("視窗2");
WorkSell w3 = new WorkSell("視窗3");
WorkSell w4 = new WorkSell("視窗4");
w2.start();
w3.start();
w4.start();
w1.start();
}
}
相關文章
- 多執行緒—賣票執行緒
- 執行緒鎖 -賣票機制執行緒
- 多執行緒賣火車票簡單例子執行緒單例
- Java多執行緒Thread類使用Java執行緒thread
- Swift多執行緒:使用Thread進行多執行緒間通訊,協調子執行緒任務Swift執行緒thread
- 多執行緒100執行緒
- iOS多執行緒全套:執行緒生命週期,多執行緒的四種解決方案,執行緒安全問題,GCD的使用,NSOperation的使用iOS執行緒GC
- Java多執行緒學習(1)建立執行緒與執行緒的生命週期Java執行緒
- Thread(執行緒)thread執行緒
- 執行緒的【生命週期】和【執行緒的同步】(多視窗售票例子)執行緒
- 使用Python編寫一個多執行緒的12306搶票程式Python執行緒
- 多執行緒(四)執行緒
- 多執行緒-作業練習執行緒
- 多執行緒系列(1),多執行緒基礎執行緒
- Java多執行緒-執行緒池的使用Java執行緒
- Java建立多執行緒的四種方式Java執行緒
- Python多執行緒之_thread與threading模組Python執行緒thread
- JMeter100個執行緒竟然只模擬出1個併發JMeter執行緒
- Java 多執行緒基礎(四)執行緒安全Java執行緒
- Java多執行緒(二):Thread類Java執行緒thread
- java多執行緒之Thread類Java執行緒thread
- 模擬主執行緒等待子執行緒的過程執行緒
- java多執行緒之執行緒的基本使用Java執行緒
- Java語言多執行緒實現一個火車站賣票系統Java執行緒
- 多執行緒學習一(多執行緒基礎)執行緒
- 執行緒與多執行緒執行緒
- 多執行緒【執行緒池】執行緒
- 多執行緒--執行緒管理執行緒
- 多執行緒------執行緒與程式/執行緒排程/建立執行緒執行緒
- 多執行緒Demo學習(執行緒的同步,簡單的執行緒通訊)執行緒
- 多執行緒面試題1執行緒面試題
- 【java】【多執行緒】建立執行緒的兩種常用方式(2)Java執行緒
- Java多執行緒學習——執行緒通訊Java執行緒
- Java多執行緒學習(2)執行緒控制Java執行緒
- Java多執行緒學習(3)執行緒同步與執行緒通訊Java執行緒
- 多執行緒和多執行緒同步執行緒
- 執行緒建立的四種方式執行緒
- 多執行緒核心技術(1)-執行緒的基本方法執行緒