zoukankan      html  css  js  c++  java
  • Java学习--多线程(1)

    1.启用多线程两种方式的区别

    (1)继承Thread:由于子类重写了Thread类的run(),当调用start()时,直接找子类的run()方法。

    (2)实现Runnable :构造函数中传入了Runable的引用,成员变量记住了他,start()调用run()方法时内部判断成员变量Runnable的引用是否为空,不为空的时候,编译时看到是Runnable的run(),运行时看的是子类的run()方法。

    2.继承Thread和实现Runnable接口的优缺点:

    (1)继承Thread

    优点:可以直接使用Thread类中的方法,代码简单。

    缺点:如果已经有了父类,就不能使用该方法。

    (2)实现Runnable接口

    优点:即使自己定义的线程类有了父类也没有关系,因为有了父类也可以实现接口,而且接口是可以多实现的。

    缺点:不能直接使用Thread中的方法,需要先获取到线程对象后,才能得到Thread的方法,代码复杂。

    3.匿名内部类实现线程的两种方式

    (1)继承Thread

        new Thread(){

          public void run()

          {

          }

        }.start();

    (2)实现Runnable接口

        new Thread(new Runnable(){

          public void run()

          {

          }

        }).start();

     4.获取设置多线程的名字

    (1)通过getName()方法获取对象的名字

    (2)设置名字:通过构造函数可以传入String类型的名字

        通过setName(String)方法可以设置线程的名字

    5.获取当前线程

     (1) Thread.currentThread()

     (2) 使用

       new Thread(new Runnable(){

          public void run()

          {

            //获取当前正在执行的线程

            System.out.println(Thread.currentThread().getName());

          }

        }).start();

    6.休眠线程 

    Thread.sleep()

    7.setDaemon(bool)守护线程

      (1)设置一个线程为守护线程,该线程不会单独执行,当其他非守护线程执行结束后,自动退出。如象棋中,如果将军死了,其他棋子都会随之死亡

      (2)传入true为守护线程

    8.join(int)加入线程 

      (1) 当前线程暂停,等待指定的线程执行结束后,当前线程再继续

    9.Thread.yield()礼让线程

      (1) 让出cpu,另一条线程执行

    10.设置线程优先级

      setPriority()设置线程的优先级

  • 相关阅读:
    Java实现 计蒜客 拯救行动
    Java实现 计蒜客 拯救行动
    Java实现 LeetCode 174 地下城游戏
    Java实现 LeetCode 174 地下城游戏
    Java实现 LeetCode 174 地下城游戏
    Java实现 LeetCode 173 二叉搜索树迭代器
    Java实现 LeetCode 173 二叉搜索树迭代器
    Visual Studio的SDK配置
    怎样使用CMenu类
    mfc menu用法一
  • 原文地址:https://www.cnblogs.com/jinjingBlog/p/11794541.html
Copyright © 2011-2022 走看看