首先給大家分享乙個巨牛巨牛的人工智慧教程,是我無意中發現的。教程不僅零基礎,通俗易懂,而且非常風趣幽默,還時不時有內涵段子,像看**一樣,哈哈~我正在學習中,覺得太牛了,所以分享給大家!點這裡可以跳轉到教程
一、每個執行緒執行的**相同
若每個執行緒執行的**相同,共享資料就比較方便。可以使用同乙個runnable物件,這個runnable物件中就有那個共享資料。
public class multithreadsharedata1
}class saletickets implements runnable
}publicsynchronizedvoid sale()
}saletickets這個物件中就有需要共享的資料allticketcount,兩個執行緒使用同乙個saletickets,就可以共享allticketcount了。
二、每個執行緒執行的**不相同
方法1:將需要共享的資料封裝成乙個物件,將該物件傳給執行不同**的runnable物件。
方法2:將這些執行不同**的runnable物件作為內部類。
看例子:有4個執行緒,其中有2個執行緒對每次對j+1,有2個執行緒對每次對j-1。加減操作無順序。
方法1:
public class multithreadsharedata3}}
class numberinfo
public int getnumber()
public void setnumber(int number)
public void add()
public void minus()
}// 增操作
class numberinfoadd implements runnable
public void run()
public void add()}}
// 減操作
class numberinfominus implements runnable
public void run()
public void minus()}}
方法2:
public class multithreadsharedata4
}public synchronized void add()
public synchronized void minus()
// 增
class numberinfoadd implements runnable
}// 減
class numberinfominus implements runnable}}
執行結果可能是:
增執行緒--數值:11
增執行緒--數值:12
減執行緒--數值:11
減執行緒--數值:10
執行結果也可能是:
增執行緒--數值:11
減執行緒--數值:10
減執行緒--數值:9
增執行緒--數值:10
其實執行緒執行相同**也可以按照這些方法來做,看乙個方法1:
public class multithreadsharedata2
}class ticketinfo
public int getallticketcount()
public void setallticketcount(int allticketcount)
public void sale()
}class saletickets2 implements runnable
public void run()
}public void sale()}}
瀏覽人工智慧教程
一、每個執行緒執行的**相同
若每個執行緒執行的**相同,共享資料就比較方便。可以使用同乙個runnable物件,這個runnable物件中就有那個共享資料。
public class multithreadsharedata1
}class saletickets implements runnable
}publicsynchronizedvoid sale()
}saletickets這個物件中就有需要共享的資料allticketcount,兩個執行緒使用同乙個saletickets,就可以共享allticketcount了。
二、每個執行緒執行的**不相同
方法1:將需要共享的資料封裝成乙個物件,將該物件傳給執行不同**的runnable物件。
方法2:將這些執行不同**的runnable物件作為內部類。
看例子:有4個執行緒,其中有2個執行緒對每次對j+1,有2個執行緒對每次對j-1。加減操作無順序。
方法1:
public class multithreadsharedata3}}
class numberinfo
public int getnumber()
public void setnumber(int number)
public void add()
public void minus()
}// 增操作
class numberinfoadd implements runnable
public void run()
public void add()}}
// 減操作
class numberinfominus implements runnable
public void run()
public void minus()}}
方法2:
public class multithreadsharedata4
}public synchronized void add()
public synchronized void minus()
// 增
class numberinfoadd implements runnable
}// 減
class numberinfominus implements runnable}}
執行結果可能是:
增執行緒--數值:11
增執行緒--數值:12
減執行緒--數值:11
減執行緒--數值:10
執行結果也可能是:
增執行緒--數值:11
減執行緒--數值:10
減執行緒--數值:9
增執行緒--數值:10
其實執行緒執行相同**也可以按照這些方法來做,看乙個方法1:
public class multithreadsharedata2
}class ticketinfo
public int getallticketcount()
public void setallticketcount(int allticketcount)
public void sale()
}class saletickets2 implements runnable
public void run()
}public void sale()}}
執行緒間的資料共享
執行緒間的資料共享可以通過兩種方式 通過thread子類建立程序的方法 通過runnable介面實現程序之間的共享 比較這兩種實現程序共享的區別 thread子類建立程序 package practice4 public class threadsale extends thread public ...
Qt學習 執行緒間共享資料
qt執行緒間共享資料主要有兩種方式 第一種辦法在各個程式語言都使用普遍,而第二種方式倒是qt的特有方式,下面主要學習一下這種方式 c sharp view plain copy ifndef textdevice h define textdevice h include include inclu...
詳解 Qt 執行緒間共享資料
使用共享記憶體。即使用乙個兩個執行緒都能夠共享的變數 如全域性變數 這樣兩個執行緒都能夠訪問和修改該變數,從而達到共享資料的目的。qt 執行緒間共享資料是本文介紹的內容,多的不說,先來啃內容。qt執行緒間共享資料主要有兩種方式 使用共享記憶體。即使用乙個兩個執行緒都能夠共享的變數 如全域性變數 這樣...