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

    问1:同一个线程对象可以被多次调用start方法吗?

    》不可以。因为每一个线程有一个volidate修饰的线程状态【threadStatus】。在每次调用start方法时,都会检查线程状态,如果不为0,则抛出

    【IllegalThreadStateException();】

    问2:主线程和子线程之间的关系时怎样的?

    》主线程创建子线程对象,主线程和子线程各自执行,互相不影响。同时,子线程之间也不会互相干扰。

    问3:如果直接调用线程的run()方法,会是怎样的?

    》程序不会报错,但是是由主线程执行。【start()方法是帮助启动线程和执行run()方法】

    匿名内部类如何使用的?

    》new 父类(){子类内容}

    线程中常用的方法:

    /**
    * 测试Thread类中的常用方法
    * 1、start()启动当前线程,调用当前线程中的run方法
    * 2、run()通常需要重写,将线程需要执行的任务写到run()中
    * 3、SetName(),GetName()
    * 4、currentThread()
    * 5、yield()线程让步,让出线程的执行权
    * 6、join()在线程a中调用线程b的join(),此时线程a就会立刻进入到阻塞状态,知道线程b完全执行完后,线程a才会结束阻塞状态
    * 7、sleep(int)
    * 8、stop()强制终止线程,已经过时
    * 9、isAlive()判断当前线程是否存活
    */

    线程中的setpriority()方法,可以设置线程的优先级。

    》疑问?如何通过方法进行线程优先级的设置?是否和操作系统中的进程抢占调度算法类似?

    线程中为什么setpriority()设置完优先级之后,线程之间还是会有交叉调度的?

    》线程优先级高的并不会一直抢占cpu资源,也会有轮询机制。所以不管如何设置优先级,不会使其中的某个线程彻底处于阻塞状态,直到优先级高的线程先执行完





  • 相关阅读:
    第二次站立会议
    小组第一次站立会议
    用户场景描述
    本周学习总结
    构建之法阅读笔记之三
    本周的学习收获
    java连接Oracle数据库
    scott用户不存在
    大二暑假第五周总结
    业务用例分析
  • 原文地址:https://www.cnblogs.com/yibao/p/13561520.html
Copyright © 2011-2022 走看看