zoukankan      html  css  js  c++  java
  • 线程同步

    同步 就像食堂排队取餐一样,前面一个人取完餐 后面的人才可以继续取餐 ,线程同步和异步与字面意思正好相反 同步就是有先后顺序  一段代码执行后才会执行另一端代码,而线程异步则是 多个代码块同时执行 没有顺序之分

    //继承Thread
    public class MyHread1 extends Thread {
    public Print p1;

    @Override
    public void run() {
    //循环打印print1中的内容
    for (int i = 1; i <= 5; i++) {
    p1.print1();

    }




    }


    }

    复制代码
    public class MyThread2 implements Runnable{
    public Print p1;
        @Override
        public void run() {
              //循环输出print2中的内容
            for (int i = 1; i <= 5; i++) {
                p1.print2();
                
            }
        }
    
    }
    复制代码

    定义两个类  一个继承Thread 另一个实现Runable  循环输出内容  分别在void前加上锁synchronized

    复制代码
    public class Print {
    
    
        public synchronized void print1(){
            
            System.out.print("我");
            System.out.print("是");
            
            System.out.println();
        }
        
        public synchronized void print2(){
            
            System.out.print("好");
            System.out.print("人");
            System.out.println();
            
        }
    
    }
    复制代码

    定义一个print类  类中有两个方法 分别输出内容  并且内容之间不换行  直至全部结束再换行

    复制代码
    public class Test {
        
        public static void main(String[] args) {
            MyHread1 mh=new MyHread1();
            Print p=new Print();
            mh.p1=p;
            
            mh.start();
            
            
            MyThread2 mh2=new MyThread2();
            
            mh2.p1=p;
            Thread th=new Thread(mh2);
            
            th.start();
            
        }
    
    }


    复制代码

    运行结果如下:

  • 相关阅读:
    使用TestStack.White进行Windows UI的自动化测试
    基于IDEA的JavaWeb开发环境搭建
    hfish 集群蜜罐搭建
    HFish开源蜜罐搭建
    redis实现查找附近商户信息功能
    WIN10 HYPERV 1503
    RPC
    推荐一个聚合搜索引擎提高学习工作效率
    RocketMQ原理分析&场景问题
    《高性能利器》--异步调用实现原理详解!
  • 原文地址:https://www.cnblogs.com/superws/p/5770604.html
Copyright © 2011-2022 走看看