本文目錄一覽:
- 1、JAVA開啟三個線程,去讀取數組中的數據不能重複
- 2、java有幾種實現線程的方式?
- 3、Java線程怎樣使用?
- 4、java怎麼創建一個線程
- 5、java中開啟子線程後主線程中傳入的變量不變
- 6、java有幾種實現線程的方式
JAVA開啟三個線程,去讀取數組中的數據不能重複
set中是不能存在重複數的。
這個可以通過修改數據的時間來判斷。例如:表中有個字段讀取時間。當這個客戶讀取10條數據的時候,更新讀取時間為當前時間。然後下個客戶讀取的時候,判斷時間在半個小時內,沒有更新的數據。就OK了。
java有幾種實現線程的方式?
有三種:
(1)繼承Thread類,重寫run函數
創建:class xx extends Thread{ public void run(){Thread.sleep(1000)//線程休眠1000毫秒,sleep使線程進入Block狀態,並釋放資源}}
開啟線程:對象.start()//啟動線程,run函數運行
(2)實現Runnable接口,重寫run函數
開啟線程:Thread t = new Thread(對象)//創建線程對象t.start()
(3)實現Callable接口,重寫call函數
Callable是類似於Runnable的接口,實現Callable接口的類和實現Runnable的類都是可被其它線程執行的任務。
Java線程怎樣使用?
多進程是指操作系統能同時運行多個任務(程序),多線程是指在同一程序中有多個順序流在執行。
在java中創建一個線程有兩種方法:
package com.thread;
public class ThreadTest1 {
public static void main(String[] args) {
Runnable1 r = new Runnable1();
//r.run();並不是線程開啟,而是簡單的方法調用
Thread t = new Thread(r);//創建線程
//t.run(); //如果該線程是使用獨立的 Runnable 運行對象構造的,則調用該 Runnable 對象的 run 方法;否則,該方法不執行任何操作並返回。
t.start(); //線程開啟
for (int i = 0; i 100; i++) {
System.out.println(“main:”+i);
}
}
}
class Runnable1 implements Runnable{
public void run() {
for (int i = 0; i 100; i++) {
System.out.println(“Thread—–:”+i);
}
}
}
java怎麼創建一個線程
Java線程類也是一個object類,它的實例都繼承自java.lang.Thread或其子類。 可以用如下方式用java中創建一個線程:
Tread thread = new Thread();
執行該線程可以調用該線程的start()方法:
thread.start();
編寫線程運行時執行的代碼有兩種方式:一種是創建Thread子類的一個實例並重寫run方法,第二種是創建類的時候實現Runnable接口。接下來我們會具體講解這兩種方法:
創建Thread的子類
創建Thread子類的一個實例並重寫run方法,run方法會在調用start()方法之後被執行。例子如下:
public class MyThread extends Thread {
public void run(){
System.out.println(“MyThread running”);
}
}
可以用如下方式創建並運行上述Thread子類
MyThread myThread = new MyThread();
myTread.start();
一旦線程啟動後start方法就會立即返回,而不會等待到run方法執行完畢才返回。就好像run方法是在另外一個cpu上執行一樣。當run方法執行後,將會打印出字符串MyThread running。
實現Runnable接口
第二種編寫線程執行代碼的方式是新建一個實現了java.lang.Runnable接口的類的實例,實例中的方法可以被線程調用。下面給出例子:
public class MyRunnable implements Runnable {
public void run(){
System.out.println(“MyRunnable running”);
}
}
為了使線程能夠執行run()方法,需要在Thread類的構造函數中傳入 MyRunnable的實例對象。示例如下:
Thread thread = new Thread(new MyRunnable());
thread.start();
當線程運行時,它將會調用實現了Runnable接口的run方法。上例中將會打印出”MyRunnable running”。
java中開啟子線程後主線程中傳入的變量不變
使用回調,變量改變。
在主線程中對類C的實變量進行設置,然後輸出變量開啟子線程,通過構造函數傳入變量,在子線程中改變變量的值子線程中調用主線程的靜態方法傳遞數據給主線程說明子線程執行結束子線程結束後在主線程中查看變量已經發生改變。
每個線程都有一個唯一標示符,來區分線程中的主次關係的說法, 線程唯一標示符,Thread.CurrentThread.ManagedThreadID。
java有幾種實現線程的方式
java創建線程的方式有三種
第一種是繼承Thread類 實現方法run() 不可以拋異常 無返回值
第二種是實現Runnable接口 實現方法run() 不可以拋異常 無返回值
第三種是實現CallableT接口,接口中要覆蓋的方法是 public T call() 注意:此方法可以拋異常,而前兩種不能 而且此方法可以有返回值
第三種如何運行呢 Callable接口在util.concurrent包中,由線程池提交
import java.util.concurrent.*;
ExecutorService e = Executors.newFixedThreadPool(10); 參數表示最多可以運行幾個線程
e.submit(); 這個裡面參數傳 實現Callable接口那個類的對象
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/191910.html