??? ?? 2017-10-11 17:55 采纳率: 100%
浏览 796
已采纳

java之Thread线程相关 代码案例代码案例

有没有yield()、sleep()、wait()、join()、run和start区别代码实例代码案例 找不到  可以运行的 不要 文档
  • 写回答

1条回答 默认 最新

  • 来时路去征途 2017-10-11 18:11
    关注

    这是我做练习的时候写的代码,你可以参考下,
    /**
    *run(),start(),join(),sleep(),yield();练习
    */
    public class ThreadTest {
    private int i=0;
    private Object o = new Object();
    static class Mythread extends Thread{
    public void run() {
    System.out.println("0当前线程ID:"+Thread.currentThread().getId());
    }
    }

    static  class  Mythread1 implements Runnable{
        public void run() {
            System.out.println("1当前线程ID:"+Thread.currentThread().getId());
        }
    }
    
    public static void main(String[] args) throws InterruptedException {
        /*System.out.println("主线程:"+Thread.currentThread().getId());
        Mythread mythread = new Mythread();
        mythread.run();
    
        mythread.start();
        System.out.println("******************************************************");
    
        System.out.println("主线程:"+Thread.currentThread().getId());
        Mythread1 mythread1 = new Mythread1();
        mythread1.run();
        Thread thread = new Thread(mythread1);
        thread.start();*/
        //mythread1.start();
        ThreadTest test = new ThreadTest();
        /*SleepClass p =test.new SleepClass();
        SleepClass p1 = test.new SleepClass();
        p.start();
        p1.start();*/
        /*YeildClass y = test.new YeildClass();
        y.start();*/
    
        //启动子线程
        new JoinClass("new  Thread").start();
        for(int i=0;i<10;i++){
            if(i==5){
                Thread th = new JoinClass("thead");
                th.start();
                th.join();
            }
            System.out.println(Thread.currentThread().getName()+" "+i);
        }
    }
    
    class SleepClass extends Thread{
        @Override
        public void run() {
            synchronized (o){
                i++;
                System.out.println("i:"+i);
                try {
                    System.out.println("线程:"+ Thread.currentThread().getName()+"进入睡眠");
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println("线程"+Thread.currentThread().getName()+"睡眠结束");
                i++;
                System.out.println("i:"+i);
            }
        }
    }
    
    class YeildClass extends Thread{
        public void run() {
            long benginTime = System.currentTimeMillis();
            int count = 0;
            for(int i=0;i<500000;i++){
                count = count +i;
                Thread.yield();
            }
            long endTime = System.currentTimeMillis();
            System.out.println("用时:"+(endTime-benginTime));
        }
    }
    
    static class JoinClass extends Thread{
        public JoinClass(String name){
            super(name);
        }
        public void run() {
            for (int i =0;i<5;i++){
                System.out.println(this.getName()+" "+i);
            }
        }
    }
    

    }

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

悬赏问题

  • ¥15 全志t113i启动qt应用程序提示internal error
  • ¥15 ensp可以看看嘛.
  • ¥80 51单片机C语言代码解决单片机为AT89C52是清翔单片机
  • ¥60 优博讯DT50高通安卓11系统刷完机自动进去fastboot模式
  • ¥15 minist数字识别
  • ¥15 在安装gym库的pygame时遇到问题,不知道如何解决
  • ¥20 uniapp中的webview 使用的是本地的vue页面,在模拟器上显示无法打开
  • ¥15 网上下载的3DMAX模型,不显示贴图怎么办
  • ¥15 关于#stm32#的问题:寻找一块开发版,作为智能化割草机的控制模块和树莓派主板相连,要求:最低可控制 3 个电机(两个驱动电机,1 个割草电机),其次可以与树莓派主板相连电机照片如下:
  • ¥15 潜在扩散模型的Unet特征提取
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部