在java中如何防止從其它執行緒類執行run方法

2021-04-09 01:56:09 字數 559 閱讀 7715

mythread類是乙個執行緒類,**如下

class mythread extends thread

}//執行這個run方法一般有三種方法

//1:使用mythread.start()方法

//2: 使用thread類

//3:在主線程中直接呼叫run方法

public class test

}有時需要禁止在主線程中直接呼叫run或是使用thread方式呼叫run。從果要達到這個目標,可以將mythread的run方法改寫為如下形式

class mythread extends thread

}其中thread.currentthread()方法返回當前正在執行的執行緒,而在run方法中呼叫currentthread,表示正是由當前正在執行的執行緒類呼叫的run方法。如果當前正執行的執行緒類和當前的mythread物件this不相等的話,就說明是其它的執行緒事例來呼叫的run方法。因此,丟擲乙個錯誤。

可在run方法中加下system.out.println(thread.currentthread().getname());獲得當前正在執行的執行緒名。

java多執行緒,如何防止髒讀資料

多執行緒容易 非執行緒安全 的情況,是由於用了全域性變數,而又沒有很好的控制起情況。所以無論做什麼程式,謹慎使用全域性變數 非執行緒安全 其實會在多個執行緒對同乙個物件中的例項變數進行併發訪問時發生,產生的後果就是 髒 讀。如以下 就會出現 髒 讀的情況 package com.ming.threa...

java中如何從主線程傳引數到子執行緒

下面這個例子和上面一樣,除了說是子執行緒要join主線程。本例中還教會了大家,如何從主線程傳引數到子執行緒。例 1.5.3 2 class threadmark to win extends thread catch interruptedexception e system.out.println...

Java中如何防止使用者惡意提交

1.新增驗證碼的控制,可以有效的防止使用者的惡意攻擊了,除非他知道你 的驗證碼的演算法。2.像discuz中那樣form表單中增加forhash的隱藏域,判斷是否是從我的 中提交的。3.可以判斷兩次提交的時間間隔,用session來記錄上次提交的時間。if isset session send ti...