執行緒併發庫(計時器,同步)

2021-08-26 13:20:47 字數 1791 閱讀 2383

計時器:

public static void main(string args) throws interruptedexception 	}}

class mytask extends timertask

}

使用計時器安排任務,先2秒執行一次,然後4秒執行一次,再2秒執行一次,4秒執行一次,迴圈……:

public static void main(string args) throws interruptedexception 	}}

class task1 extends timertask

}class task2 extends timertask

}

使用計時器安排任務,周一到周五每天凌晨4點執行:

public class exercise2 

}class task extends timertask

}

jdk1.4同步的三種方式:

同步**塊

使用synchronized(鎖物件)形式進行同步,多個執行緒執行同步**塊時如果使用的鎖物件相同,只能有乙個執行緒執行。

同步方法

使用synchronized關鍵字修飾方法,這時整個方法都是同步的,使用this作為鎖物件。

靜態同步方法

靜態方法也可以使用synchronized關鍵字修飾,方法內部的**也是同步的,這時的鎖物件是當前類的class物件。

同步**塊:

public class syncdemo1 

}).start();

new thread(new runnable()

}).start(); }}

class printer

} public void print2()

}}

同步方法:

class printer 

public synchronized void print2()

}

同步方法和同步**塊聯合使用實現同步(同步方法使用this當做鎖):

class printer 

} public synchronized void print2()

}

同步方法和同步**塊聯合使用實現同步(靜態同步方法使用當前類的class物件當做鎖):

class printer 

} public static synchronized void print2()

}

迴圈巢狀同步鎖可能導致死鎖:

private static object lock1 = new object();

private static object lock2 = new object();

public static void main(string args)

system.out.println("釋放lock2");

}system.out.println("釋放lock1");

}}).start();

new thread(new runnable()

system.out.println("釋放lock1");

}system.out.println("釋放lock2");

}}).start();

}

python計時器 python 計時器

import sysclassshowtime qwidget def init self super init self.istimestart false 標記時間是否開始計時 self.setwindowtitle qlable 顯示計時時間 self.lable time val qlabe...

python計時器單位 python計時器類

import time as t class mytimer def init self self.unit 年 月 日 時 分 秒 self.prompt 未開始計時 self.lasted self.start 0 self.stop 0 def str self return self.pro...

伺服器計時器與 Windows 計時器

說明 此文大部分內容摘自msdn,本人只是做了一點整理。如果有什麼異議,一切以msdn為準。一 引言 在 visual studio net 中有兩種計時器控制項 基於伺服器的計時器和標準的基於 windows 的計時器。基於 windows 的計時器為在 windows 窗體應用程式中使用而進行了...