当前位置: 首页 > news >正文

网站需要去工信部做备案吗网站编辑怎么做

网站需要去工信部做备案吗,网站编辑怎么做,武汉软件网站建设,东莞做网站 汇卓一 当多个线程需要协同完成一件事时,可以加锁wait,notify一起完成。 1.写两个线程,一个线程打印1~52,另一个线程打印A~Z,打印顺序是12A34B...5152Z; 思路分析,一个线程打印数字,每次…

 一 当多个线程需要协同完成一件事时,可以加锁+wait,notify一起完成。

  1.写两个线程,一个线程打印1~52,另一个线程打印A~Z,打印顺序是12A34B...5152Z;

  思路分析,一个线程打印数字,每次打印两个数字,26次打印完,另一个线程打印字母,也是26次打印完;可以创建两个方法,一个方法打印数字,一个打印字母;还有创建一个全局变量用来控制具体执行的是哪个线程;每个方法都被执行26次。

public class TwoThread {public static void main(String args[]){MyObject1 my = new MyObject1();new Thread(new Runnable(){@Overridepublic void run() {// TODO Auto-generated method stubfor(int i = 0; i < 26; i++){my.printNum();}}}).start();new Thread(new Runnable(){@Overridepublic void run() {// TODO Auto-generated method stubfor(int i = 0; i < 26; i++){my.printA();}}}).start();}
}
class MyObject1{private static boolean flag = true ;public  int count = 1;public synchronized void printNum(){while(flag == false){try {this.wait();} catch (InterruptedException e) {// TODO Auto-generated catch block
                e.printStackTrace();}}System.out.print((2*count-1));System.out.print(2*count);flag = false;this.notify();}public synchronized void printA(){while(flag == true){try {this.wait();} catch (InterruptedException e) {// TODO Auto-generated catch block
                e.printStackTrace();}}System.out.print((char)(count+'A'-1));count++;flag = true;this.notify();}
}

2.子线程循环10次,主线程循环100次,然后子线程循环10次,主线程循环100次,这样循环50次;

  思路:跟上面那个一样,也是synchornized+wait,notify方法;难点在于主线程的启动不需要start方法,因为程序的入口是main方法,在执行这个程序的时候,主线程已经启动了;

public class SubMain {public static void main(String args[]){MyObject2 m = new MyObject2();new Thread(new Runnable(){@Overridepublic void run() {// TODO Auto-generated method stubfor(int i = 0; i<5; i++)m.sub();}}).start();for(int i = 0; i<5; i++)m.main1();}
}class MyObject2{private boolean flag = true;//flag是true时执行sub方法,flag是false时执行main1方法public synchronized void sub(){while(flag == false){ //如果flag==false,说明另一个线程拥有该对象的锁,调用sub的方法被阻塞,直到另一个线程释放锁,唤醒该线程。try {this.wait();} catch (InterruptedException e) {// TODO Auto-generated catch block
                e.printStackTrace();}}for(int i = 0 ; i<10; i++){System.out.print("s");}System.out.println();    flag = false;this.notify();}public synchronized void main1(){while(flag == true){try {this.wait();} catch (InterruptedException e) {// TODO Auto-generated catch block
                e.printStackTrace();}}for(int i = 0 ; i<100; i++){System.out.print("m");}System.out.println();    flag = true;this.notify();}}

3.编写一个程序,启动三个线程,三个线程的ID分别是A,B,C;,每个线程将自己的ID值在屏幕上打印5遍,打印顺序是ABCABC...

  

public class ThreeThread extends Thread {public static void main(String[] args) {MyObject ob = new MyObject();new Thread(new Runnable(){@Overridepublic void run() {// TODO Auto-generated method stubfor(int i = 0 ; i<10 ; i++)ob.printA();}}).start();new Thread(new Runnable(){@Overridepublic void run() {// TODO Auto-generated method stubfor(int i = 0 ; i<10 ; i++)ob.printB();}}).start();new Thread(new Runnable(){@Overridepublic void run() {// TODO Auto-generated method stubfor(int i = 0 ; i<10 ; i++)ob.printC();}}).start();}}class MyObject  {private  int flag = 1;public synchronized void printA(){while(flag != 1){try {this.wait();} catch (InterruptedException e) {// TODO Auto-generated catch block
                e.printStackTrace();}}System.out.print("A");flag = 2;this.notifyAll();}public synchronized void printC(){while(flag != 3){try {this.wait();} catch (InterruptedException e) {// TODO Auto-generated catch block
                e.printStackTrace();}}System.out.println("C");flag = 1;this.notifyAll();}public synchronized void printB(){while(flag != 2){try {this.wait();} catch (InterruptedException e) {// TODO Auto-generated catch block
                e.printStackTrace();}}System.out.print("B");flag = 3;this.notifyAll();}}

总结,这3个程序的思路都一样,都是定义一个对象,将方法都同步,每个方法都用一个线程启动,对象之间有个全局变量,线程通过全局变量的设置来控制线程执行顺序。

  

转载于:https://www.cnblogs.com/zhihuayun/p/6861083.html

http://www.lbrq.cn/news/2423899.html

相关文章:

  • 专业网站建设效果企业培训机构哪家最好
  • 新网站关键词怎么优化b2b电子商务网站
  • 网站建设项目报价清单百度排名点击软件
  • 天津制作个人建站aso苹果关键词优化
  • 网站建设带数据库模板做网站怎么赚钱
  • 怎样做网站代理seo关键词优化策略
  • 郑州企业网站如何建设优化设计答案六年级上册
  • 中山织树网站建设网络营销工程师
  • 做网站合伙怎么分画质优化app下载
  • wordpress建个人网站百度竞价推广收费
  • 外贸电商独立网站广州抖音推广公司
  • 政府网站建设必要性线上培训
  • php做商城网站怎么做好电商项目策划书
  • 视频网站开发代码福州百度推广排名
  • 珠海网站设计公司互动营销平台
  • 取名字网站如何做北京广告公司
  • 如何制作自己的网站模版媒体:北京不再公布疫情数据
  • 杭州网络网站建设网站推广排名收费
  • 网站开发公司广告word网络营销工作内容和职责
  • 网站建设需求有什么用品牌营销的四大策略
  • 微网站自己怎么做深圳整合营销
  • 专门做母婴的网站软文广告营销
  • 门户网站建设需要注意什么北京seo产品
  • 华亮建设集团股份有限公司网站哪有培训seo
  • 自已如何做网站咖啡seo是什么意思
  • 教育课程网站建设2345网址大全
  • 快站的优惠券怎么发布的发稿平台
  • 2017建站之星怎么样如何购买域名
  • 广安建设企业网站乐云seo
  • php网站建设网站搜索引擎排名优化价格
  • 如何使用终端查看任意Ubuntu的版本信息
  • Android NDK ffmpeg 音视频开发实战
  • 关键成功因素法(CSF)深度解析:从战略目标到数据字典
  • Vue过度与动画效果
  • Three.js 立方体贴图(CubeMap)完全指南:从加载到应用
  • 基于大数据的旅游推荐系统 Python+Django+Hive+Vue.js