1. 程式人生 > >java---多執行緒sleep()和setPriority()方法

java---多執行緒sleep()和setPriority()方法

package ThreadIO2_1.Thread.schedule.v1;

public class MyRunner extends Thread {
	private static Object obj = new Object();

	public void run() {
		synchronized (obj) {
			try {
				Thread.sleep(5000);
			} catch (InterruptedException e) {
				System.out.println(this.getName() + "已經被喚醒");
			}
			for (int i = 1; i < 101; i++) {
				System.out.println(Thread.currentThread().getName() + "--No.--"
						+ i);
			}
		}
	}

}

package ThreadIO2_1.Thread.schedule.v1;

public class Schedule {
	public static void main(String[] args) {
		Thread t1 = new MyRunner();
		t1.start();
		Thread t2 = new MyRunner();
		t2.start();
		// 採用優先順序進行相對排程,相比優先順序高的搶佔資源的概率要高一些,同樣的優先順序在前面的排程的更快
		t1.setPriority(9);
		t2.setPriority(3);
		try {
			Thread.sleep(2000);
			// t2.interrupt();// 強制喚醒t2執行緒;t2也就是執行中的Thread-1,t1是執行中的Thread-0;
		} catch (InterruptedException e) {
			System.out.println("~~~");
		}

	}
}

相關推薦

java---執行sleep()setPriority()方法

package ThreadIO2_1.Thread.schedule.v1; public class MyRunner extends Thread { private static Obje

Java 執行 joininterrupt 方法

簡述: 使用Java多執行緒中join和interrupt函式 《Java程式設計思想》 P669 ~ P670 一個執行緒可以再其他執行緒上呼叫join()方法,其效果是等待一段時間直到第二個執行緒結束才繼續執行。 如果某個執行緒在另一個執行緒t上呼叫t.join(), 此

java 執行synchronized鎖同步方法,同步程式碼塊

執行緒安全問題 同步和非同步 我們知道多個執行緒共享堆記憶體,當兩個或者多個執行緒呼叫同一個物件的方法操作物件成員時,因為cpu輪流執行執行緒,執行緒A剛開始操作物件方法,修改了資料,輪到執行緒B執行,執行緒B也操作物件方法,修改資料,可能又輪到執行緒A操作物件方法,接著上次執行緒A的剩餘部

Java——實現Java執行的三種方法

Java虛擬機器允許應用程式併發地執行多個執行緒。在Java語言中,多執行緒的實現一般有以下3種方法,其中前兩種是最常用的方法。 1.繼承Thread類,重寫run()方法 Thread本質上也是實現了Runnable介面的一個例項,它代表一個執行緒的例項。並且,啟動執行緒的唯一方法就是通過

java執行-Thread的yield方法

yield表示當前執行緒申請交出執行權,但並不是一定會交出,依賴於系統的執行緒排程。 因此該方法並不穩定。 class Test { public static void main(String[] args) throws InterruptedException { Te

Java執行3種實現方法

Java中的多執行緒有三種實現方式:1.繼承Thread類,重寫run方法。Thread本質上也是一個實現了Runnable的例項,他代表一個執行緒的例項,並且啟動執行緒的唯一方法就是通過Thread類的start方法。2.實現Runnable介面,並實現該介面的run()

Java執行同步非同步詳解

1. 多執行緒併發時,多個執行緒同時請求同一資源,必然導致此資源的資料不安全。 2. 執行緒池 在WEB服務中,對於web伺服器的響應速度必須儘可能的快,這就容不得在使用者提交請求按鈕後,再建立執行緒提供服務。為了減少使用者的等待時間,執行緒必須預先建立,放線上程池中,執行

Java 執行 生產者消費者 佇列

    wait()和notifyAll()方法以一種非常低階的方式解決了任務互操作問題,即每次互動時都握手。在許多情況下,你可以瞄向更高的抽象級別,使用同步佇列來解決任務協作問題,同步佇列在任何時刻都只允許一個任務插入或移除元素。在java.util.concurrent

執行 start run 方法到底有什麼區別?

昨天棧長介紹了《Java多執行緒可以分組,還能這樣玩!》執行緒分組的妙用。今天,棧長會詳細介紹 Java 中的多執行緒 start() 和 run() 兩個方法,Java 老司機請跳過,新手或者對這兩個不是很理解的可以繼續往下看。 首先要知道實現多執行緒最基本的

java執行中關於join方法的使用

Thread的非靜態方法join()讓一個執行緒B“加入”到另外一個執行緒A的尾部。在A執行完畢之前,B不能工作。例如:         Thread t = new MyThread();         t.start();         t.join(); 另外,j

Java執行-FutureTask的get方法阻塞問題

FutureTask類中get方法阻塞的問題: get方法的實現: /** * @throws CancellationException {@inheritDoc} */ public V get() throws Interrupte

關乎Java執行+RunnableThread…

兩種方法     一種是繼承自Thread類.Thread 類是一個具體的類,即不是抽象類,該類封裝了執行緒的行為.要建立一個執行緒,程式設計師必須建立一 個從 Thread 類匯出的新類.程式設計師通過覆蓋 Thread 的 run() 函式來完成有用的工作.使用者並不直接呼叫此函式;而是通過調

Java執行wait與synchronized方法

兩種wait()方法 第一種需要一個以毫秒計的時間作引數,它的意思和sleep()一樣,都是:“暫停一段時間”區別在於: 1.wait()會釋放物件的鎖,也就是說線上程wait()期間,別的執行緒可以呼叫它的synchronized方法。   執行緒sleep()

Java執行之優先順序setPriority

在作業系統中,執行緒可以劃分優先順序,優先順序較高的執行緒得到CPU資源較多,也就是CPU優先執行優先順序較高的執行緒物件中的任務(其實並不是這樣)。 在Java中,執行緒的優先順序用setPrior

java執行中對於join方法的理解

對於多執行緒的join方法一直理解得很模糊,大致看了一些資料,JDK是這樣說的:join public final void join (long millis )throws InterruptedException Waits at most millis

java執行FutureCallable類的解釋與使用

一,描述     ​在多執行緒下程式設計的時候,大家可能會遇到一種需求,就是我想在我開啟的執行緒都結束時,同時獲取每個執行緒中返回的資料然後再做統一處理,在這樣的需求下,Future與Callable的組合就派上了很大的用場。也有人會說,我可以使用同步來完成這個需求啊,一

java執行中的join方法詳解

 方法Join是幹啥用的? 簡單回答,同步,如何同步? 怎麼實現的? 下面將逐個回答。     自從接觸Java多執行緒,一直對Join理解不了。JDK是這樣說的:join public final void join(long millis)throws InterruptedException Wait

Java執行-生產者消費者

標籤(空格分隔): java thread 簡介: 隨著作業系統的不斷更新迭代,多執行緒程式設計已經變的十分常見,java虛擬機器的多執行緒一般也是建立在作業系統本地native執行緒之上的,從而不必自己管理執行緒間的切換,直接交由本機作業系統進行排程和

java執行run()start()的區別

其實,run()和start()區別很簡單。 當你啟動執行緒,使用start(),系統會把run()方法當成執行緒執行體來處理,這是正常的,也是正確的情況。但是,當你啟動執行緒時,呼叫run()方法,系統run()方法會立即執行,但是這時候系統會把run()方法當成普通的方

Java執行中的interrupt方法的使用

轉載出處:http://my.oschina.net/summerpxy/blog/198457  在java中,開啟一個多執行緒是很簡單的,只需要new一個runnable就可以了,但是要停止一個執行緒,卻不能簡單的使用Thread.stop()方法。