二、執行緒的例項
三、同步方法
思路:用實現callable介面的方法建立多執行緒,futuretask是callable的子類,有乙個get()方法用來獲取執行緒執行完之後的結果。
public class callable_text1 implements callable
@override
public integer call() throws exception
return sum;
}}
public class callable_main
}
出現多執行緒安全問題的條件
思路:
@override
public void run()
} catch (ioexception e)
}}
public class thread_main2
start = len*n;
end = file.length();
new thread_text2(start, end, file, file1).start();
}}
注意:
一定要記得開啟執行緒,不然不會出現任何的結果
目的檔案的檔名不一定要和原始檔的檔名一樣
要解決的問題
解決的方法
public class seal_ticket_text extends thread catch (interruptedexception e)
ticket--;
system.out.println(thread.currentthread().getname() + " " + "還剩下" + ticket + "張票");}}
}}
}
public class seal_ticket_main
}
synchronized修飾的方法叫做同步方法。
正確的案例:
public class seal_ticket_text implements runnable
}private synchronized void seal_ticket() catch (interruptedexception e)
ticket--;
system.out.println(thread.currentthread().getname() + "剩下" + ticket + "張票");}}
}
public class seal_ticket_main
}
錯誤的示範:
package thread;
public class seal_ticket_text extends thread
}private synchronized void seal_ticket() catch (interruptedexception e)
ticket--;
system.out.println(thread.currentthread().getname() + "剩下" + ticket + "張票");}}
}
public class seal_ticket_main
}
同步方法的鎖物件用的用的是this,但是必須是同乙個物件的this,不然就達不到使票成為互斥資源的效果,如上面的錯誤的案例,就new了兩個物件,這樣同步方法裡的鎖物件就不是同乙個物件,就會執行各自的鎖方法,就會出錯。
private static synchronized void seal_ticket() catch (interruptedexception e)
ticket--;
system.out.println(thread.currentthread().getname() + "剩下" + ticket + "張票");}}
}
多執行緒程式設計 之 入門篇
自己第一次涉及c語言的多執行緒程式設計,實屬入門了解級別的 之前只做過j a的runnable的多執行緒程式設計。本次我們可以把螢幕看成是乙個資源,這個資源被兩個執行緒所共用,include include using namespace std dword winapi fun lpvoid lp...
HOOK API入門篇 一
windows系統是建立在事件驅動的機制上的,說穿了就是整個系統都是通過訊息的傳遞來實現的。而鉤子是windows系統中非常重要的系統介面,用它可以截獲並處理送給其他應用程式的訊息,來完成普通應用程式難以實現的功能。鉤子可以監視系統或程序中的各種事件訊息,截獲發往目標視窗的訊息並進行處理。這樣,我們...
Python入門篇(一)
對了,入門篇都是python3.6的,其實只要有其它物件導向的經驗,看一遍就ok了,如果沒有基礎的朋友,可就得多寫幾遍嘍,理解物件的用法,未完待續 一 概念 類 用來描述具有 相同屬性和方法的物件的集合 二 命名方式 1 類名大駝峰 2 方法名小駝峰 3 嚴格區分大小寫 三 類的定義 class c...