java¶àÏ̵߳ÄЧÂʾÍÒ»¶¨¸ßÂð£¿
ºÜ¾ÃûÉÏÀ´ÁË£¬·¢ÏÖËäÈ»×ÊÁϺÍÊé¿´µÄºÜ¶à£¬µ«ÊǺܾÃûÅöµÄ¶«Î÷»¹ÊǺÜÈÝÒ×µÍü¡£ÒÔºóÏ£ÍûÄܶà¼Ç¼°É¡£
½ñÌìÍæÁ˰ÑÏ̳߳أ¬²¢¶ÔÆäÖеIJÎÊý×öÁËһЩµ÷Õû£¬²¢¼Ç¼Ôڶಢ·¢Çé¿öÏÂÏß³ÌÊý¶Ô¸÷ÖÖÇé¿öµÄ·´Ó¦¡£³ÌÐòÊÇÍøÉÏÕҵ쬲¢×÷ÁËÉÔ΢Ð޸ġ£
javaµÄÏ̳߳ØÊµÏÖ£¬ThreadPool
package net.zj.hz.yk.threadpool;
import java.util.LinkedList;
public class ThreadPool extends ThreadGroup {
private boolean isClosed = false; // Ï̳߳ØÊÇ·ñ¹Ø±Õ
private LinkedList workQueue; // ¹¤×÷¶ÓÁÐ
private static int threadPoolID = 1; // Ï̳߳صÄid
public ThreadPool(int poolSize) {
super(threadPoolID + "");// Ö¸¶¨ThreadGroupµÄÃû³Æ
setDaemon(true); // ¼Ì³Ðµ½µÄ·½·¨£¬ÉèÖÃÊÇ·ñÊØ»¤Ï̳߳Ø
workQueue = new LinkedList(); // ´´½¨¹¤×÷¶ÓÁÐ
for (int i = 0; i < poolSize; i++) {
new WorkThread(i).start(); // ´´½¨²¢Æô¶¯¹¤×÷Ïß³Ì,Ï̳߳ØÊýÁ¿ÊǶàÉپʹ´½¨¶àÉÙ¸ö¹¤×÷Ïß³Ì
}
}
/** µÈ´ý¹¤×÷Ḭ̈߳ÑËùÓÐÈÎÎñÖ´ÐÐÍê±Ï */
public void waitFinish() {
synchronized (this) {
isClosed = true;
notifyAll(); // »½ÐÑËùÓл¹ÔÚgetTask()·½·¨ÖеȴýÈÎÎñµÄ¹¤×÷Ïß³Ì
}
// activeCount() ·µ»Ø¸ÃÏß³Ì×éÖлÏ̵߳ĹÀ¼ÆÖµ¡£
Thread[] threads = new Thread[activeCount()];
// enumerate()·½·¨¼Ì³Ð×ÔThreadGroupÀ࣬¸ù¾Ý»î¶¯Ï̵߳ĹÀ¼ÆÖµ»ñµÃÏß³Ì×éÖе±Ç°ËùÓлµÄ¹¤×÷Ïß³Ì
int count = enumerate(threads);
for (int i = 0; i < count; i++) { // µÈ´ýËùÓй¤×÷Ï߳̽áÊø
try {
threads[i].join(); // µÈ´ý¹¤×÷Ï߳̽áÊø
} catch (InterruptedException ex) {
ex.printStackTrace();
}
}
}
/** ¹Ø±ÕÏß³Ì³Ø */
public synchronized void closePool() {
if (!isClosed) {
// µÈ´ý¹¤×÷Ïß³ÌÖ´ÐÐÍê±Ï
waitFinish();
isClosed = true;
// Çå¿Õ¹¤×÷¶ÓÁÐ
workQueue.clear();
// ÖжÏÏ̳߳ØÖеÄËùÓеŤ×÷Ïß³Ì,´Ë·½·¨¼Ì³Ð×ÔThreadGroupÀà
interrupt();
}
}
/** Ïò¹¤×÷¶ÓÁÐÖмÓÈëÒ»¸öÐÂÈÎÎñ,Óɹ¤×÷Ïß³ÌÈ¥Ö´ÐиÃÈÎÎñ */
public synchronized void execute(Runnable task) {
if (isClosed) {
throw new IllegalStateException();
}
if (task != null) {
// Ïò¶ÓÁÐÖмÓÈëÒ»¸öÈÎÎñ
Ïà¹ØÎĵµ£º
Ò»¡¢Àí½â¶àÏß³Ì
¶àÏß³ÌÊÇÕâÑùÒ»ÖÖ»úÖÆ£¬ËüÔÊÐíÔÚ³ÌÐòÖв¢·¢Ö´Ðжà¸öÖ¸ÁîÁ÷£¬Ã¿¸öÖ¸ÁîÁ÷¶¼³ÆÎªÒ»¸öỊ̈߳¬±Ë´Ë¼ä»¥Ïà¶ÀÁ¢¡£Ïß³ÌÓÖ³ÆÎªÇáÁ¿¼¶½ø³Ì£¬ËüºÍ½ø³ÌÒ»ÑùÓµÓжÀÁ¢µÄÖ´ÐпØÖÆ£¬ÓɲÙ×÷ϵͳ¸ºÔðµ÷¶È£¬Çø±ðÔÚÓÚÏß³ÌûÓжÀÁ¢µÄ´æ´¢¿Õ¼ä£¬¶øÊǺÍËùÊô½ø³ÌÖÐµÄÆäËüÏ̹߳²ÏíÒ»¸ö´æ´¢¿Õ¼ä£¬ÕâʹµÃÏ̼߳äµÄͨ ......
1. import java.text.DateFormat;
2. import java.text.ParseException;
3. import java.util.Date;
4.
5. /**
6. * @description 計ËãÁ½¸öÈÕÆÚÏà²îµÄÌìÊý
7. * @author ZhouJingxian
8. *
9. */
10. public class CountDate {
11.
12. ......
ËäÈ»²»¾õµÃÔÚ±à³ÌʱÕýÈ·ÅжÏjavaÀà³õʼ»¯¹¤×÷ÏȺó˳Ðò»áÊÇÒ»¸öÌôÕ½£¬ÇÒ¶ÔÓÚÀà³õʼ»¯µÄÈÏʶ»¹Ö»Í£ÁôÔÚÓïÑÔÌØÐÔ»úÖÆµÄ²ãÃæ(»òÐí»áÊÇÒ»ÖÖʵÏÖ¼¼ÇÉÁìÓòµÄÒéÌâ)£¬µ«¶ÔÓÚ¹ØÓÚ³õʼ»¯ÕâÀàÁãÉ¢¶øÓÖϸСµÄ֪ʶµã£¬×ܽỹÊÇÓмÛÖµµÄ ......
1.InputStreamºÍOutputStreamÊÇÓÃÓÚ¶Á»òдµ¥¸ö×Ö½Ú»òÕß×Ö½ÚÊý×飬ÎÒÃǺÜÉÙÓõ½ËüÃǵķ½·¨£¬ËüÃÇÖ®ËùÒÔ´æÔÚÊÇÒòΪ±ðµÄÀà¿ÉÒÔʹÓÃËüÃÇ£¬ÒÔ±ãÌṩ¸üÓÐÓõĽӿڡ£Òò´Ë£¬ÎÒÃǺÜÉÙʹÓõ¥Ò»µÄÀàÀ´´´½¨Á÷¶ÔÏ󣬶øÊÇͨ¹ýµþºÏ¶à¸ö¶ÔÏóÀ´ÌṩËùÆÚÍûµÄ¹¦ÄÜ¡£
2.FilterInputStreamºÍFilterOutputStreamÊÇÓÃÀ´ÌṩװÊÎÆ÷Àà½Ó¿ÚÒÔ¿ØÖÆÌض¨ ......
ÍøÂçµÄ¸ÅÄî:Ï໥Á¬½Ó,¶ÀÁ¢×ÔÖ÷
ÍøÂçÓë·Ö²¼Ê½¼¯ÈºÏµÍ³µÄÇø±ð£ºÃ¿¸ö½Úµã¶¼ÊÇһ̨¼ÆËã»ú£¬¶ø²»ÊǸ÷ÖÖ¼ÆËã»úÄÚ²¿µÄ¹¦ÄÜÉ豸¡£
Ip:¾ßÓÐÈ«ÇòΨһÐÔ£¬Ïà¶ÔÓÚinternet£¬IPΪÂß¼µØÖ·£¬TCP/IPÍøÂçÖеÄÿ̨¼ÆËã»ú¶¼ÓÐΨһµÄµØÖ·--IPµØÖ·. Ψһ±êʾһ̨Ö÷»ú
ÔÚJavaÖÐ,ÓÐÒ»¸öÓÃÀ´´æ´¢internetµØÖ·µÄÀà½ÐInetAddress.
Àý:»ñÈ¡±¾» ......