多執行緒07:龜兔賽跑
多執行緒07:龜兔賽跑
package com.HuoLong.demo01;
//模擬龜兔賽跑
public class Race implements Runnable {
//勝利者
private static String winner;//
@Override
public void run() {
for (int i = 0; i <= 100; i++) {
//模擬兔子休息
if (Thread.currentThread().getName().equals("兔子")&& i%10==0){
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
//判斷比賽是否結束
boolean flag=gameOver(i);
//如果比賽結束了,就停止程式
if (flag){
break;
}
System.out.println(Thread.currentThread().getName()+"-->跑了"+i+"步");
}
}
//判斷是否完成比賽
private boolean gameOver(int steps){
//判斷是否有勝利者
if (winner!=null){//已經存在勝利者了
return true;
}{
if (steps==100){
winner=Thread.currentThread().getName();
System.out.println("winner is"+winner);
return true;
}
}
return false;
}
public static void main(String[] args) {
Race race = new Race();
new Thread(race,"兔子").start();
new Thread(race,"烏龜").start();
}
}
搜尋
複製
相關推薦
多執行緒07:龜兔賽跑
多執行緒07:龜兔賽跑 package com.HuoLong.demo01;//模擬龜兔賽跑public class Race implements Runnable { //勝利者 private static String winner;// @Override public void run() {
Java多執行緒07:執行緒池
經常建立、銷燬執行緒對效能影響很大,因此可以提前建立多個執行緒放入執行緒池,使用時直接獲取,使用完放回池中
多執行緒例子:網圖下載
多執行緒例子:網圖下載 import org.apache.commons.io.FileUtils; import java.io.File; import java.io.IOException;
通過多執行緒 寫出龜兔賽跑
package com.jishu.demo01;//模擬龜兔賽跑public class Race implements Runnable{private static String winner;@Overridepublic void run() {for (int i = 0; i <= 100; i++) {//模擬兔子休息if(Thread.current
多執行緒列印:兩個執行緒列印AB,三個執行緒列印ABC
package club.interview.algorithm.print; import io.netty.util.concurrent.DefaultThreadFactory; import java.util.concurrent.*;
Qt多執行緒練習:通過QSemaphore實現生產者-消費者模型
技術標籤:qt 原始碼 #include "mainwindow.h" /*Buffer[BufferSize]:生產者向Buffer中填寫資料,消費者從Buffer中取出資料*/
【Linux】C多執行緒程式設計:互斥鎖
互斥量從本質上說就是一把鎖, 提供對共享資源的保護訪問。其基本原理就是在呼叫pthread_mutex_lock函式後 互斥鎖為上鎖狀態,在其他執行緒裡如果出現了pthread_mutex_lock函式後,會直接阻塞,直到互斥鎖解鎖。
多執行緒通訊:生產者與消費者問題
技術標籤:Java執行緒java多執行緒 1、wait()、notify/notifyAll() 方法是Object的本地final方法,無法被重寫。 2、wait()使當前執行緒阻塞,前提是 必須先獲得鎖,一般配合synchronized 關鍵字使用,即,一般在
java 多執行緒 thread insert_Java多執行緒3:Thread中的靜態方法
技術標籤:java 多執行緒 thread insert Thread類中的靜態方法 Thread類中的靜態方法表示操作的執行緒是"正在執行靜態方法所在的程式碼塊的執行緒"。為什麼Thread類中要有靜態方法,這樣就能對CPU當前
java 多執行緒 thread insert_Java多執行緒2:Thread中的例項方法
技術標籤:java 多執行緒 thread insert Thread類中的方法呼叫方式: 學習Thread類中的方法是學習多執行緒的第一步。在學習多執行緒之前特別提出一點,呼叫Thread中的方法的時候,線上程類中,有兩種方式,一定
Java學習-080-多執行緒13:利用Lambda表示式實現執行緒類的定義
用較小的程式碼量可以實現的執行緒定義,可以通過 Lambda 表示式進行執行緒類的實現。
Java多執行緒02:Lambda表示式
Lambda表示式可以避免匿名內部類定義過多,讓程式碼看上去很簡潔,其實質屬於函數語言程式設計的概念
Java多執行緒06:執行緒通訊
Synchronized實現了同步,但不能用實現不同執行緒之間的訊息傳遞 wait()方法表示執行緒一直等待,直到其他執行緒通知,與sleep()不同,wait()會釋放鎖
java多執行緒2:Thread中的方法
靜態方法: Thread類中的靜態方法表示操作的執行緒是\"正在執行靜態方法所在的程式碼塊的執行緒\"。
java多執行緒3:synchronized
執行緒安全 多個執行緒共同訪問一個物件的例項變數,那麼就可能出現執行緒不安全的問題。
java多執行緒5:執行緒間的通訊
在多執行緒系統中,彼此之間的通訊協作非常重要,下面來聊聊執行緒間通訊的幾種方式。
java多執行緒7:ReentrantReadWriteLock
真實的多執行緒業務開發中,最常用到的邏輯就是資料的讀寫,ReentrantLock雖然具有完全互斥排他的效果(即同一時間只有一個執行緒正在執行lock後面的任務),
java多執行緒8:阻塞佇列與Fork/Join框架
佇列(Queue),是一種資料結構。除了優先順序佇列和LIFO佇列外,佇列都是以FIFO(先進先出)的方式對各個元素進行排序的。
java多執行緒9:執行緒池
執行緒池 執行緒池的優點 我們知道執行緒的建立和上下文的切換也是需要消耗CPU資源的,所以在多執行緒任務下,使用執行緒池的優點就有:
Java多執行緒01:什麼是執行緒和執行緒的建立
Java多執行緒01:什麼是執行緒和執行緒的建立 執行緒概念 執行緒就是獨立的執行路徑