java¶àÏ̱߳à³ÌÒªµã(Èý)
ÔÚJDK1.5֮ǰ£¬¶Ô¸ßÖÊÁ¿Java¶àÏ̲߳¢·¢³ÌÐòÉè¼ÆÊ±£¬Îª·ÀÖ¹³ÌÐò±ÀµôµÈÏÖÏóµÄ³öÏÖ£¬±ÈÈçʹÓÃwait()¡¢notify()ºÍsynchronizedµÈ£¬ÐèÒª¿¼ÂÇÐÔÄÜ¡¢ËÀËø¡¢¹«Æ½ÐÔ¡¢×ÊÔ´¹ÜÀíÒÔ¼°ÈçºÎ±ÜÃâḬ̈߳²È«ÐÔ·½Ãæ´øÀ´µÄΣº¦µÈÖî¶àÒòËØ£¬Í¨³£»á²ÉÓÃһЩ½ÏΪ¸´Ôӵݲȫ²ßÂÔ£¬¼ÓÖØÁ˳ÌÐòÔ±µÄ¿ª·¢¸ºµ£¡£ÔÚJDK1.5³öÏÖÖ®ºó£¬´óÅ£Doug Lee±àдÁËjava.util.concurrent java²¢·¢¹¤¾ß°ü£¬¿ª·¢ÕßÀûÓô˰ü£¬¿É´ó´óÌá¸ß²¢·¢³ÌÐòµÄ¿ª·¢Ð§ÂÊ£¬²¢ÇÒÄÜÓÐЧ·ÀÖ¹×ÊÔ´¾ºÕù¡¢×´Ì¬Ò»ÖºͱÜÃâËÀËø¡£java.util.concurrent°ü·Ö³ÉÁËÈý¸ö²¿·Ö£¬·Ö±ðÊÇjava.util.concurrent¡¢java.util.concurrent.atomicºÍjava.util.concurrent.locks¡£ÄÚÈݺ¸ÇÁ˲¢·¢¼¯ºÏÀà¡¢Ï̳߳ػúÖÆ¡¢Í¬²½»¥³â»úÖÆ¡¢Ḭ̈߳²È«µÄ±äÁ¿¸üй¤¾ßÀà¡¢ËøµÈ³£Óù¤¾ß¡£
1£© java.util.concurren£ºÆäÖ÷ÒªµÄ½Ó¿ÚºÍÀàÓÐExecutor¡¢Executors¡¢ExecutorService¡¢Callable¡¢FutureºÍBlockingQueue£¬Õâ6¸ö½Ó¿ÚºÍÀà¿ÉÈçÏÂÀí½â£º
﹒Executor£º¾ßÌåRunnableÈÎÎñµÄÖ´ÐÐÕߣ»
﹒Executors£ºÌṩÁËһϵÁй¤³§·½·¨ÓÃÓÚ´´ÏÈÏ̳߳أ¬·µ»ØµÄÏ̳߳ض¼ÊµÏÖÁËExecutorService½Ó¿Ú£»
﹒ExecutorService£ºÀ©Õ¹ÁËExecutor²¢Ìí¼ÓÁËһЩÉúÃüÖÜÆÚ¹ÜÀíµÄ·½·¨¡£Ò»¸öExecutorServiceµÄÉúÃüÖÜÆÚÓÐÈýÖÖ״̬£ºÔËÐС¢¹Ø±ÕºÍÖÕÖ¹¡£ExecutorService´´½¨Ê±´¦ÓÚÔËÐÐ״̬£¬µ±µ÷ÓÃExecutorService.shutdown()ºó´¦ÓڹرÕ״̬£¬ËùÓÐÒÑÌí¼ÓµÄÈÎÎñÖ´ÐÐÍê±ÏºóExecutorService´¦ÓÚÖÕֹ״̬£»
¡¡¡¡﹒Future£ºÊÇÓëRunnable,Callable½øÐн»»¥µÄ½Ó¿Ú£¬±ÈÈçÒ»¸öÏß³ÌÖ´ÐнáÊøºóÈ¡·µ»ØµÄ½á¹ûµÈµÈ£¬»¹ÌṩÁËcancelÖÕÖ¹Ị̈߳»
﹒BlockingQueue£º×èÈû¶ÓÁС£
±í¸ñËùʾΪ´úÂëʾÀý£º
package com.thread.test.concurent;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.FutureTask;
i
Ïà¹ØÎĵµ£º
ÔÚjavaÈç¹ûÒ»¸ö³ÉÔ±±»ÉùÃ÷Ϊstatic£¬Ëü¾ÍÄܹ»ÔÚËüµÄÀàµÄÈκζÔÏó´´½¨Ö®Ç°±»·ÃÎÊ£¬¶ø²»±ØÒýÓÃÈκζÔÏó¡£Äã¿ÉÒÔ½«·½·¨ºÍ±äÁ¿¶¼ÉùÃ÷Ϊstatic¡£static ³ÉÔ±µÄ×î³£¼ûµÄÀý×ÓÊÇmain( ) ¡£ÒòΪÔÚ³ÌÐò¿ªÊ¼Ö´ÐÐʱ±ØÐëµ÷ÓÃmain() £¬ËùÒÔËü±»ÉùÃ÷Ϊstatic¡£
ÓÐʱÄãÏ£Íû¶¨ÒåÒ»¸öÀà³ÉÔ±£¬Ê¹ËüµÄʹÓÃÍêÈ«¶ÀÁ¢ÓÚ¸ÃÀàµÄÈκζÔÏó¡£Í¨³ ......
//** **********´´½¨¹¤×÷²¾************ */
WritableWorkbook workbook = Workbook.createWorkbook(new File("d:/test.xls"));
/** *//** **********´´½¨¹¤ ......
ÃüÁîÐвÎÊý´¦ÀíÊÇÒ»ÏîÁîÈËÑá·³µÄÁãË鹤×÷£¬²»¹ÜÄú¹ýÈ¥ÒѾ´¦Àí¹ý¶àÉÙ´ÎÁË£¬ËüºÃÏñ×ÜÄÜÖØÐ°ÚÔÚÄúµÄÃæÇ°¡£ÓëÆäÒ»±éÓÖÒ»±éµØ±àдͬ
Ò»¿é´úÂëµÄ²»Í¬±äÖÖ£¬ÎªÊ²Ã´²»ÀûÓ÷´ÉäÀ´¼ò»¯²ÎÊý´¦ÀíµÄ¹¤×÷ÄØ£¿Java ¹ËÎÊ Dennis Sosnoski
ÏòÄúչʾÁËÈçºÎ×öµ½ÕâÒ»µã¡£ÔÚ±¾ÎÄÖУ¬Dennis ¼òÃ÷¶óÒªµØ½éÉÜÁËÒ»¸ö¿ªÔ´¿â£¬Õâ¸ö¿â¿ÉÒÔʹµÃÃüÁîÐÐ ......
package cn.eshore.mismp.sms.ws.send;
public class Base64 {
/**
* ½«ÔʼÊý¾Ý±àÂëΪbase64±àÂë
*/
static public char[] encode(byte[] data) {
char[] out = new char[((data.length + 2) / 3) * 4];
for (int i = 0, index = 0; i < data.length; i += 3, index += 4) {
boolean quad = false ......