import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

	class Mutex{
	    private int order=1; //记录线程顺序号
	    private int maxNum=0; //最大线程数
	     
	    Mutex(int num){
	        this.maxNum=num;
	    }
	    //循环设置下一次要打印的顺序号
	    public void setOrder(){
	        this.order=(++order)<=maxNum?order:1;
	    }
	    //得到顺序号
	    public int getOrder(){
	        return this.order;
	    }
	}
	//打印工作
	class PrintRunnable implements Runnable{
		 public static  byte[] readInputStream(InputStream inputStream) throws IOException {  
	         byte[] buffer = new byte[1024];  
	         int len = 0;  
	         ByteArrayOutputStream bos = new ByteArrayOutputStream();  
	         while((len = inputStream.read(buffer)) != -1) {  
	             bos.write(buffer, 0, len);  
	         }  
	           
	         bos.close();  
	         return bos.toByteArray();  
	     }  
	     
	    private Object[] cont=null; //打印内容
	    private int order=-1; //当前线程的打印顺序
	    private Mutex mutex=null; //临界区对象
	     
	    PrintRunnable(Object[] c,int o,Mutex m){
	        this.cont=c;
	        this.order=o;
	        this.mutex=m;
	    }
	     
	    public void run(){
	        try{
	            //循环打印内容
	            for(Object c:cont){
	                //互斥操作临界区
	                synchronized(mutex){
	                    //如果当前工作线程的顺序号不等于临界区的顺序号,则工作线程等待阻塞,并放弃锁
	                    while(mutex.getOrder()!=this.order)
	                        mutex.wait();
	                    //打印内容

	                    try{
	                    
	                    String head1 = "User-Agent";
	            		String head2 = "Mozilla/6.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20150312 Firefox/4.3.1";
	            		Document doc = Jsoup.connect("http://www.tvmao.com/query.jsp?keys=" + c + "&ed=").header(head1, head2)
	        					.timeout(10000000).get();
	        			Elements links = doc.select("dd[class=cur] a");
	        			String title = links.text();
	        			System.out.println(c+":"+title);
	                    }catch(Exception e){
	                    	
	                    }
	                    
	                    
	                    
	                    //设置下一次允许打印的线程顺序
	                    mutex.setOrder();
	                    //唤醒在临界区等待的所有线程
	                    mutex.notifyAll();
	                }
	            }
	        }catch(InterruptedException e){
	            e.printStackTrace();
	        }
	         
	    }
	    
	    
	}
	 
	
	
       
	 
	//测试
	public class Mutx{
	 
	    public static void main(String[] args){
			String s = "FIFA女足世界杯|Fishing全攻略|GO时尚|HELLO中国|HELLO天津|KAKU幼儿园|KO雷霆一击|K歌情人|Lily寻医|Mr.曹的店|N汽车我的最爱鸭宝宝|SHILLS红魔纤惹火紧实组|TECWOO天沃绿色高频灶超值组|TICO欢乐假日|TV1周刊|U20世界杯|FIFA女足世界杯|Fishing全攻略|GO时尚|HELLO中国|HELLO天津|KAKU幼儿园|KO雷霆一击|K歌情人|Lily寻医|Mr.曹的店|N汽车我的最爱鸭宝宝|SHILLS红魔纤惹火紧实组|TECWOO天沃绿色高频灶超值组|TICO欢乐假日|TV1周刊|U20世界杯|X战警|X档案|X诊所|e视界|“博科圣地”与西非反恐|“高考,加油!”|一个和八个|一个强盗都不留|一个老爸四个娃之永不放弃|一人一世界|一仆二主|一代宗师|一代帝师八思巴|一千零一夜|一可的魔兽教室|一周之间|一声所爱|一夜大肚|一夜迷情|一家人|一念七宝锦上添花猛犸牙吊坠|一战启示录|一方水土|一日一字|一枝小雨伞|一槌定音|一次别离|一点不夸张|一生只爱你|一票难求|一站到底|一线|一线缉毒|一脱而现|一起去旅行|一起变美吧|一起用餐吧";
			String s2 = "一个和八个|一个强盗都不留|一个老爸四个娃之永不放弃|一人一世界|一仆二主|一代宗师|一代帝师八思巴|一千零一夜|一可的魔兽教室|一周之间|一声所爱|一夜大肚|一夜迷情|一家人|一念七宝锦上添花猛犸牙吊坠|一战启示录|一方水土|FIFA女足世界杯|Fishing全攻略|GO时尚|HELLO中国|HELLO天津|KAKU幼儿园|KO雷霆一击|K歌情人|Lily寻医|Mr.曹的店|N汽车我的最爱鸭宝宝|SHILLS红魔纤惹火紧实组|TECWOO天沃绿色高频灶超值组|TICO欢乐假日|TV1周刊|U20世界杯|X战警|X档案|X诊所|e视界|“博科圣地”与西非反恐|“高考,加油!”|一个和八个|一个强盗都不留|一个老爸四个娃之永不放弃|一人一世界|一仆二主|一代宗师|一代帝师八思巴|一千零一夜|一可的魔兽教室|一周之间|一声所爱|一夜大肚|一夜迷情|一家人|一念七宝锦上添花猛犸牙吊坠|一战启示录|一方水土|一日一字|一枝小雨伞|一槌定音|一次别离|一点不夸张|一生只爱你|一票难求|一站到底|一线|一线缉毒|一脱而现|一起去旅行|一起变美吧|一起用餐吧";
			String s3 = "一日一字|一枝小雨伞|一槌定音|一次别离|一点不夸张|一生只爱你|一票难求|一站到底|一线|一线缉毒|一脱而现|一起去旅行|一起变美吧|一起用餐吧|X战警|X档案|X诊所|e视界|“博科圣地”与西非反恐|“高考,加油!”|FIFA女足世界杯|Fishing全攻略|GO时尚|HELLO中国|HELLO天津|KAKU幼儿园|KO雷霆一击|K歌情人|Lily寻医|Mr.曹的店|N汽车我的最爱鸭宝宝|SHILLS红魔纤惹火紧实组|TECWOO天沃绿色高频灶超值组|TICO欢乐假日|TV1周刊|U20世界杯|X战警|X档案|X诊所|e视界|“博科圣地”与西非反恐|“高考,加油!”|一个和八个|一个强盗都不留|一个老爸四个娃之永不放弃|一人一世界|一仆二主|一代宗师|一代帝师八思巴|一千零一夜|一可的魔兽教室|一周之间|一声所爱|一夜大肚|一夜迷情|一家人|一念七宝锦上添花猛犸牙吊坠|一战启示录|一方水土|一日一字|一枝小雨伞|一槌定音|一次别离|一点不夸张|一生只爱你|一票难求|一站到底|一线|一线缉毒|一脱而现|一起去旅行|一起变美吧|一起用餐吧";
			 String[] names1 = s.split("\\|");
			 String[] names2 = s2.split("\\|");
			 String[] names3 = s3.split("\\|");
	        Mutex mutex=new Mutex(3);
	        new Thread(new PrintRunnable(names1,1,mutex)).start();
	        new Thread(new PrintRunnable(names2,2,mutex)).start();
	        new Thread(new PrintRunnable(names3,3,mutex)).start();
	    }
	}
最近下载更多
212600  LV7 2022年9月6日
刘卫国  LV6 2021年12月1日
Sean_admin  LV7 2021年4月23日
liangge2115  LV27 2020年10月24日
senint  LV6 2020年5月14日
wei112233  LV15 2020年2月2日
zdjljty  LV9 2019年12月13日
1602177575  LV14 2019年11月25日
newhaijun  LV15 2019年11月14日
付晨雨  LV6 2019年9月10日
最近浏览更多
java小书童  LV17 1月29日
雨中纸鹤  LV1 2023年12月6日
212600  LV7 2022年9月6日
寒江雪2017  LV9 2022年7月14日
好的好的  LV8 2022年7月7日
夜上清元  LV8 2022年5月4日
ranting520 2022年4月26日
暂无贡献等级
lzxzuidaima  LV5 2022年2月12日
刘卫国  LV6 2021年12月1日
admin1021  LV6 2021年10月20日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友