JAVA学习笔记 之 线程

创建新的线程

        

  创建新的线程有两种方式,其一是将类申明为Thread子类,该子类去重写Thread的run方法。

  这里我们创建SubThread类去继承Thread类,然后重写run()方法,为了看得清楚我们选择打印1-50,然后在main()方法里面去实例化对象SubThread并调用.start()方法。这是第一个线程。

  第二个线程就很简单了,直接就是主函数自己的线程。这里为了看着清楚,我们也选择去打印1-50。

  观察结果,可以发现,在run线程执行的时候,偶尔也会有main线程的执行结果出现。

          

  创建的另一种方法是申明实现Runable接口的类,然后该类实现run方法(其实也是重写)。这样做的好处是将线程对象和线程任务做到了分离,解开了耦合性。

  步骤如下:首先是实例化SubRunable类,然后实例化Thread类,并将实例化的sr放入Thread()中。最后,再用 t 去调用start()方法。观察结果,同样也可以发现四多线程的输出结果。

获取线程的名字

       

  main方法是静态的方法,想要获得main方法线程的名字也得用静态方法,JAVA中定义了一个静态方法currentThread,用currentThread方法实例化对象调用自身方法getName是获得main线程名字的唯一途径。

  新开的线程的名字的获得就显得相对简单,可以直接调用getName方法,这是一个动态方法。

睡眠方法

         

  因为sleep方法中可能会出现异常,所以要抛出异常。sleep()方法是静态方法,可以直接调用。如果是自己的线程调用sleep方法,因为SleepThread是Thread的子类,但Thread没有抛出异常,所以子类则需要try和catch抛出异常。

  Thread.sleep(...)括号里面的数字是按照毫秒计算的,所以1000就是睡眠一秒。

猜你喜欢

转载自www.cnblogs.com/AbidingAffection/p/10337093.html
今日推荐