• JAVA面向对象学习——java多线程———线程的创建和启动——实现Runnable接口创建线程类


                             实现Runnable接口创建线程类

    (1)定义Runnable接口的实现类,并重写该接口的run方法,该run方法的方法体同样是该线程的线程执行体。

    (2)创建Runnable实现类的实例,并以此实例作为Thread的target来创建Thread对象,该Thread对象才是真正的线程对象。

    (3)调用线程对象的start方法来启动该线程。

     

     

    // 通过实现Runnable接口来创建线程类
    public class SecondThread implements Runnable
    {
    	private int i;
    	// run方法同样是线程执行体
    	public void run()
    	{
    		for ( ; i < 100; i++)
    		{
    			// 当线程类实现Runnable接口时,
    			// 如果想获取当前线程,只能用Thread.currentThread()方法。
    			System.out.println(Thread.currentThread().getName()
    				+ " " + i);
    		}
    	}
    
    	public static void main(String[] args)
    	{
    		for (var i = 0; i < 100; i++)
    		{
    			System.out.println(Thread.currentThread().getName()
    				+ " " + i);
    			if (i == 20)
    			{
    				var st = new SecondThread();     // ①
    				// 通过new Thread(target, name)方法创建新线程
    				new Thread(st, "新线程1").start();
    				new Thread(st, "新线程2").start();
    			}
    		}
    	}
    }
    

      

    ============================================================================

    public class SecondThread implements Runnable
    {
        private int i;
    
        public void run()
        {
            for ( i = 0; i < 100; i++)
            {
                System.out.println(Thread.currentThread().getName() + " " + i);
            }
        }
    
        public static void main(String[] args)
        {
            for (int i = 0; i < 100; i++)
            {
                System.out.println(Thread.currentThread().getName() + " " + i);
    
                if (i == 20)
                {
                    SecondThread st = new SecondThread();
    
                    new Thread(st, "xiancehng---1").start();
    
                    new Thread(st, "xiancehng---2").start();
                }
            }
        }
    }
    

      


    > Task :SecondThread.main()


    main 0
    main 1
    main 2
    main 3
    main 4
    main 5
    main 6
    main 7
    main 8
    main 9
    main 10
    main 11
    main 12
    main 13
    main 14
    main 15
    main 16
    main 17
    main 18
    main 19
    main 20
    main 21
    main 22
    main 23
    xiancehng---1 0
    main 24
    xiancehng---2 0
    xiancehng---2 1
    xiancehng---2 2
    xiancehng---1 1
    xiancehng---2 3
    main 25
    xiancehng---2 5
    xiancehng---1 4
    xiancehng---2 6
    main 26
    main 27
    main 28
    xiancehng---2 8
    xiancehng---2 9
    xiancehng---1 7
    xiancehng---2 10
    xiancehng---2 12
    xiancehng---2 13
    xiancehng---2 14
    xiancehng---2 15
    xiancehng---2 16
    xiancehng---2 17
    xiancehng---2 18
    xiancehng---2 19
    xiancehng---2 20
    xiancehng---2 21
    main 29
    main 30
    main 31
    main 32
    main 33
    main 34
    main 35
    xiancehng---2 22
    xiancehng---1 11
    xiancehng---2 23
    main 36
    main 37
    xiancehng---2 25
    xiancehng---1 24
    xiancehng---2 26
    xiancehng---2 28
    main 38
    xiancehng---2 29
    xiancehng---2 30
    xiancehng---2 31
    xiancehng---2 32
    xiancehng---2 33
    xiancehng---2 34
    xiancehng---2 35
    xiancehng---2 36
    xiancehng---2 37
    xiancehng---2 38
    xiancehng---1 27
    xiancehng---2 39
    main 39
    xiancehng---2 41
    xiancehng---1 40
    xiancehng---1 43
    xiancehng---1 44
    xiancehng---1 45
    xiancehng---1 46
    xiancehng---1 47
    xiancehng---1 48
    xiancehng---1 49
    xiancehng---1 50
    xiancehng---1 51
    xiancehng---1 52
    xiancehng---1 53
    xiancehng---1 54
    xiancehng---2 42
    main 40
    xiancehng---2 56
    xiancehng---1 55
    xiancehng---1 58
    xiancehng---1 59
    xiancehng---2 57
    main 41
    xiancehng---2 61
    xiancehng---2 62
    xiancehng---2 63
    xiancehng---2 64
    xiancehng---2 65
    xiancehng---2 66
    xiancehng---2 67
    xiancehng---2 68
    xiancehng---2 69
    xiancehng---2 70
    xiancehng---2 71
    xiancehng---2 72
    xiancehng---2 73
    xiancehng---2 74
    xiancehng---2 75
    xiancehng---2 76
    xiancehng---1 60
    xiancehng---1 78
    xiancehng---1 79
    xiancehng---1 80
    xiancehng---2 77
    main 42
    xiancehng---2 82
    xiancehng---2 83
    xiancehng---2 84
    xiancehng---2 85
    xiancehng---2 86
    xiancehng---2 87
    xiancehng---2 88
    xiancehng---2 89
    xiancehng---2 90
    xiancehng---2 91
    xiancehng---2 92
    xiancehng---2 93
    xiancehng---2 94
    xiancehng---2 95
    xiancehng---1 81
    xiancehng---2 96
    xiancehng---2 98
    xiancehng---2 99
    main 43
    main 44
    xiancehng---1 97
    main 45
    main 46
    main 47
    main 48
    main 49
    main 50
    main 51
    main 52
    main 53
    main 54
    main 55
    main 56
    main 57
    main 58
    main 59
    main 60
    main 61
    main 62
    main 63
    main 64
    main 65
    main 66
    main 67
    main 68
    main 69
    main 70
    main 71
    main 72
    main 73
    main 74
    main 75
    main 76
    main 77
    main 78
    main 79
    main 80
    main 81
    main 82
    main 83
    main 84
    main 85
    main 86
    main 87
    main 88
    main 89
    main 90
    main 91
    main 92
    main 93
    main 94
    main 95
    main 96
    main 97
    main 98
    main 99

  • 相关阅读:
    data:image/png;base64
    需要去了解的知识
    【转】react的高阶组件
    几个css问题
    antd中form中resetFields清空输入框
    react中map循环中key取值问题
    react中父组件调用子组件的方法
    hive 初始化 时间问题 The server time zone value 'EDT' is unrecognized
    centos7安装MySQL8 无法修改密码 无法修改密码策略
    虚拟机 Linux 不能连 xshell 不能上网
  • 原文地址:https://www.cnblogs.com/xiaobaibailongma/p/16062759.html
Copyright © 2020-2023  润新知