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基础总结--面向对象1
    Java基础总结--数组
    Java基础总结--方法(函数)
    Java基础总结--流程控制
    Java基础总结--变量、运算符总结
    Java基础总结--Java编程环境变量配置
    OpenWrt源码结构
    OpenWRT介绍
    内存管理
    makefie中的几种用法
  • 原文地址:https://www.cnblogs.com/jinjingBlog/p/11794541.html
Copyright © 2011-2022 走看看