摘要:實現賣票案例定義一個多個線程共享的票源設置線程任務賣票使用死循環讓賣票操作重復執行先判斷票是否存在提高安全問題出現的概率讓程序睡眠票存在賣票正在賣第張票模擬賣票案例創建個線程同時開啟對共享的票進行出售創建接口的實現類對象創建類對
package com.itheima.demo06.ThreadSafe;
/*
實現賣票案例
*/
public class RunnableImpl implements Runnable{
//定義一個多個線程共享的票源 private int ticket = 100; //設置線程任務:賣票 @Override public void run() { //使用死循環,讓賣票操作重復執行 while(true){ //先判斷票是否存在 if(ticket>0){ //提高安全問題出現的概率,讓程序睡眠 try { Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } //票存在,賣票 ticket-- System.out.println(Thread.currentThread().getName()+"-->正在賣第"+ticket+"張票"); ticket--; } } }
}
package com.itheima.demo06.ThreadSafe;
/*
模擬賣票案例 創建3個線程,同時開啟,對共享的票進行出售
*/
public class Demo01Ticket {
public static void main(String[] args) { //創建Runnable接口的實現類對象 RunnableImpl run = new RunnableImpl(); //創建Thread類對象,構造方法中傳遞Runnable接口的實現類對象 Thread t0 = new Thread(run); Thread t1 = new Thread(run); Thread t2 = new Thread(run); //調用start方法開啟多線程 t0.start(); t1.start(); t2.start(); }
}
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/75608.html
摘要:此時,就出現了線程不安全問題了。因為的初始值會是因此,重排序是有可能導致線程安全問題的。真的能完全保證一個變量的線程安全嗎我們通過上面的講解,發現關鍵字還是挺有用的,不但能夠保證變量的可見性,還能保證代碼的有序性。 對于volatile這個關鍵字,相信很多朋友都聽說過,甚至使用過,這個關鍵字雖然字面上理解起來比較簡單,但是要用好起來卻不是一件容易的事。 這篇文章將從多個方面來講解vol...
摘要:前言本文是一篇簡短的雜糅本文源自于作者最近的一個疑問為什么在舊版的中偏向鎖的移除一定要在全局安全點進行同時在上個星期作者參與的一個項目發生了一件怪事一個服務莫名其妙地不接受任何請求了一切請求都是而查看日志發現出故障的服務本身去請求另一個服務 前言 本文是一篇簡短的雜糅. 本文源自于作者最近的一個疑問:為什么在舊版的jdk中偏向鎖的移除一定要在全局安全點進行?同時在上個星期,作者參與的一...
摘要:線程安全問題都是由全局變量及靜態變量引起的。常量始終是線程安全的,因為只存在讀操作。局部變量是線程安全的。有狀態對象,就是有實例變量的對象,可以保存數據,是非線程安全的。 前言 有多少人在使用Spring框架時,很多時候不知道或者忽視了多線程的問題? ??因為寫程序時,或做單元測試時,很難有機會碰到多線程的問題,因為沒有那么容易模擬多線程測試的環境。那么當多個線程調用同一個bean的時...
摘要:線程安全問題都是由全局變量及靜態變量引起的。常量始終是線程安全的,因為只存在讀操作。局部變量是線程安全的。有狀態對象,就是有實例變量的對象,可以保存數據,是非線程安全的。 前言 有多少人在使用Spring框架時,很多時候不知道或者忽視了多線程的問題? ??因為寫程序時,或做單元測試時,很難有機會碰到多線程的問題,因為沒有那么容易模擬多線程測試的環境。那么當多個線程調用同一個bean的時...
摘要:線程操作共享數據的安全問題線程操作共享數據的安全問題如果有多個線程在同時運行,而這些線程可能會同時運行這段代碼。喚醒全部可以將線程池中的所有線程都喚醒。 01線程操作共享數據的安全問題 *A:線程操作共享數據的安全問題 如果有多個線程在同時運行,而這些線程可能會同時運行這段代碼。 程序每次運行結果和單線程運行的結果是一樣的,而且其他的變量的值也和預期的是一樣的,就是線程安全的。 02...
閱讀 835·2023-04-26 00:37
閱讀 721·2021-11-24 09:39
閱讀 2148·2021-11-23 09:51
閱讀 3824·2021-11-22 15:24
閱讀 747·2021-10-19 11:46
閱讀 1877·2019-08-30 13:53
閱讀 2430·2019-08-29 17:28
閱讀 1326·2019-08-29 14:11