多執行緒例項一----三個視窗同時賣票
package com.shone.thread.ticket; /** * Created by Xiao GuoJian on 2018/1/24. * 三個視窗同時賣票 */ /** * 票 */ class Ticket { private int count = 1; public void sale(){ while (true) { synchronized (this){ if(count>20){ System.out.println("票已經賣完啦"); break; } else { System.out.println(Thread.currentThread().getName() + "賣的第 "+count+" 張票"); count++; } try { Thread.sleep(200); } catch (InterruptedException e) { e.printStackTrace(); } } } } } /** * 售票視窗 */ class SaleWindows extends Thread{ private Ticket ticket; public SaleWindows(String name,Ticket ticket){ super(name); this.ticket = ticket; } @Override public void run() { super.run(); ticket.sale(); } } public class TicketDemo { public static void main(String[] args) { Ticket ticket = new Ticket(); SaleWindows windows1 = new SaleWindows("視窗1",ticket); SaleWindows windows2 = new SaleWindows("視窗2",ticket); SaleWindows windows3 = new SaleWindows("視窗3",ticket); windows1.start(); windows2.start(); windows3.start(); } }
相關推薦
多執行緒例項一----三個視窗同時賣票
package com.shone.thread.ticket; /** * Created by Xiao GuoJian on 2018/1/24. * 三個視窗同時賣票 */ /** * 票 */ class Ticket { private i
多執行緒程式設計:三個售票視窗同時賣出20張票
分析: 1)票數要使用一個靜態值,才能所有視窗共享(執行緒) 2)要使用執行緒同步鎖,才不會有多個視窗同時賣出一張票 程式碼: package ThreadTest; /* * 多個視窗同時賣出20張票 */ public class Station extend
多執行緒程式設計中三個特性
多執行緒程式設計要確保併發程式正確地執行,必須要保證原子性、可見性以及有序性,缺一不可,不然就可能導致結果執行不正確。 1.原子性 即一個操作或者多個操作 要麼全部執行並且執行的過程不會被任何因素打斷,要麼就都不執行。 一個很經典的例子就是銀行賬戶轉賬問
Java 多執行緒實現多個視窗同時賣票
建立執行緒的第二種方式:實現Runable介面 步驟: 1,定義類實現Runnable介面 2,覆蓋Runnable介面中的run方法。將執行緒要執行的程式碼存放在該run方法中。 3,通過Thread類建立執行緒物件。 4,將Runnable介面的子類物件作為實際引數傳遞
多執行緒問題,三個執行緒輪流進行,每個執行緒進行n次操作,共執行n*n*3次操作。本程式碼用三軍攻擊做演示,通俗易懂。
package com.yyj.zxy; public class SanJunFight { /** * 三隻部隊輪流上戰場,每隻部隊在戰場上每一輪只能進行n次攻擊; * 合計攻擊300次則停止攻擊; */ private static int coun
多執行緒(至少三個執行緒)分別列印A、B、C,要求按ABC的順序迴圈列印10次。
看到網上一道題,三個執行緒按順序列印A、B、C迴圈10次,於是自己按幾種方法也寫了一下: 一、用執行緒池、Lock鎖和condition(Object 監視器方法的使用)組合使用實現: package multithread; import java.util.concu
多執行緒(二)Java多執行緒,啟動四個執行緒,兩個執行加一,另外兩個執行減一
public class Test { public static void main(String[] args) { final ShareData data = new ShareData(); for (int i = 0; i < 2; i++) {
Linux c多執行緒程式設計的4個例項
在主流的作業系統中,多工一般都提供了程序和執行緒兩種實現方式,程序享有獨立的程序空間,而執行緒相對於程序來說是一種更加輕量級的多工並行,多執行緒之間一般都是共享所在程序的記憶體空間的。 Linux也不例外,雖然從核心的角度來看,執行緒體現為一種對程序的"克隆"(clon
201711671125 Java多執行緒例項(第十一週)
建立3個售票視窗同時開始銷售10張票。 原始碼: public class One { public static void main(String[] args) { Ti
Java 多執行緒中。兩個執行緒交替執行,一個輸出偶數,一個輸出奇數(方法一)
public class DigitPrinterExample { public static void main(String[] args) { Number num =
多執行緒例項——每一秒顯示一次系統時間(Java)
“多執行緒”學過程式設計的都知道,但我現在才算真的明白他是用來幹什麼的。就像是完成某一目的,把它分成不同方向,同時執行實施,最後由主方向完成結束。這樣就達到高效率低消耗的目的了。 每一秒顯示一次系統時間,這一專案很容易但是很容易造成死迴圈而跳不出程式從而結束了,我們就可以利
C++11多執行緒(十一):《atomic 型別詳解三 std::atomic (續)》
參考連結:http://www.cnblogs.com/haippy/p/3304556.html 本文介紹C++11 標準庫中的 std::atomic 針對整形(integral)和指標型別的特化版本做了哪些改進。
Java多執行緒(一)基礎
1.關於執行緒與程序的區別:執行緒指程序中的一個執行場景,也就是執行流程,同一個程序中的執行緒共享其程序中的記憶體和資源(共享的記憶體是堆記憶體和方法區記憶體,棧記憶體不共享,每個執行緒有自己的,一個執行緒一個棧。);每個程序是一個應用程式,都有獨立的記憶體空間。多執行緒的使用是為了提高程式
多執行緒(十一): 計數器CountDownLatch和CyclicBarrier
public static void main(String[] args) { System.out.println(new Date() + "\t" + Thread.currentThread().getName() + "\t\trunning..."); Th
Java多執行緒學習筆記(三) wait/notify
1.wait() wait()的作用是使當前執行程式碼的執行緒進行等待, 知道接到通知(notify)或者中斷為止 wait()是Object類的方法 當執行緒處於wait,呼叫interrupt()會出現InterruptedException 在呼叫wait
Java 多執行緒(一)—— 概念的引入
併發和並行 程序和執行緒 如何建立多執行緒 第一種方法:繼承 Thread 類 第二種方法:實現 Runnable 介面 第三種方法:使用匿名內部類建立執行緒 正文 回到頂部 併發和並行 並行:指兩個或多個
java 多執行緒的一種實現方式
private ThreadPoolExecutor threadPoolExecutor; /** * 獲取執行緒池 * @return */ private ThreadPoolExecutor getThreadPoolExecutor(){
Python多執行緒例項
相關文件 Python多執行緒的實現和原理 執行緒與程序 執行緒是程序內一個執行單元,也是程序內的可排程實體。 執行緒與程序的區別: 地址空間,程序獨立空間,執行緒共享程序內的地址空間 資源分配,程序是系統資源排程及分派的基本單位 執行緒是處理器排程的
多執行緒併發篇——三件兵器
筆者是廣州的java程式設計師,剛畢業半年,工作之餘寫部落格,如果覺得我的文章寫得不錯,可以關注我的微信公眾號(J2彬彬),裡面會有更多精彩內容。從2018年8月份開始寫部落格,希望日後寫出更多通俗易懂的技術文章與大家一同分享。 talk is cheap,show me the c
深入理解Java多執行緒(一)
關於java多執行緒的概念以及基本用法:java多執行緒基礎 1,停止執行緒 停止執行緒意味著線上程執行完之前停止正在做的操作,即立刻放棄當前的操作,這並不容易。停止執行緒可以用Thread.stop()方法,但是這個方法不安全,所以不建議使用,還有一個方法就是Thre