什么是线程?
    可以理解为进程中独立运行的字任务。
 
使用多线程:
    1.继承Thread类:从源码可以看到,Thread累实现了Runnable接口。
        如果多次调用start()方法,会出现异常Exception in thread “main” java.lang.IllegalThreadStateException
    2.实现Runnable接口
    在某些JVM中,i--分为如下三步:
        A.取得原有i值
        B.计算i-1
        C.对i进行赋值
    多线程同时访问,会出现非线程安全问题
    println()方法内部是同步的。
    
    currentThread()方法:可以返回代码正在被哪个线程调用。
    isAlive()方法:判断当前线程是否处于活动状态。
        活动状态:已经启动尚未终止。
    sleep()方法:使当前正在执行的线程休眠指定毫秒数。
        this.currentThread()方法返回的线程。
    getId()方法:获得线程的唯一标识。
 
停止线程:
    Thread.interrupt()方法:停止线程时使用。
        不能马上停止,做停止标记,当前线程的方法执行完以后停止。
    this.interrupted()方法:
        测试当前线程是否是已中断状态,执行完清除状态标志为false
    this.isInterrupted()方法:
         测试当前线程是否是已中断状态,不清除状态标志
    this.stop()方法:
        暴力停止线程,已废弃,不推荐使用。
        会抛出异常,但不需要捕获。
    使用return配合interrupt()也可以停止线程。
    注意:
        建议使用抛异常的方法来终止线程,因为可以在catch代码块中处理异常。
 
    Thread.yieId()方法:
        使当前线程放弃cpu资源,重新分配。
        放弃时间不确定,有可能刚放弃,马上又获得。
    线程的优先级:
        一般来说,优先级较高的线程得到的资源较多。
        setPriority():设置线程优先级。
        Java中优先级分为1~10,10个等级,小于1或者大于10都会抛出异常。
        Jdk中有3个预定义的优先级,1,5,10
 
    优先级的继承性:
        A线程启动b线程,b线程的优先级和a线程是一样的
        
    守护线程:
        守护线程具有陪伴意义,当java中不存在非守护线程,那么守护线程也就销毁了
        垃圾回收线程就是一个守护线程。
        
    synchronized()同步方法:
        非线程安全问题存在于实例变量中,局部变量不存在。
        方法内部的变量是线程私有的。
        当多个线程访问多个对象,jvm会创建多个锁。

最新文章

  1. linux内核调试技术之修改内核定时器来定位系统僵死问题
  2. SQL Server 2008 R2——使用数字辅助表(master..spt_values)实现用计数字段对记录进行重复显示
  3. css属性在各种浏览器上的兼容性
  4. 关于轻松安装LNMP和LAMP的编译环境
  5. TTY驱动程序架构
  6. OpenCV入门学习笔记
  7. dig命令浅析
  8. python基础条件和循环
  9. Vue.js依赖收集
  10. linux基础之CentOS7新特性
  11. webdriver API
  12. Centos7编译hadoop异常:Received fatal alert: handshake_failure
  13. (转载)spring单例和多例详解。如何在单例中调用多例对象
  14. [SpringMVC-值传递] 初始SpringMVC--SpringMVC中的值传递
  15. Java多层嵌套异常处理的基本流程
  16. 删除oracle数据库用户
  17. 2017-2018-2 20155315《网络对抗技术》Exp9 :Web安全基础
  18. 从web启动winform程序
  19. 越狱机器SSH安装与使用
  20. ICM Technex 2017 and Codeforces Round #400 (Div. 1 + Div. 2, combined) D. The Door Problem 2-SAT

热门文章

  1. Linux系统下word转pdf,xls转pdf,ppt转pdf
  2. Object.keys使用整理
  3. MyBatis从入门到精通(十二):使用collection标签实现嵌套查询
  4. 20131207-ADO.NET-第十六天
  5. ASP.NET--Repeater控件分页功能实现
  6. 在安装Openstack的keystone认证服务时,出现The request you have made requires authentication. (HTTP 401) (Request-ID: req-f94bebba-f0c5-4a92-85问题的处理
  7. 如何在Windows上使用Python进行开发
  8. python带有GIL解释器锁
  9. Liunx环境下配置matplotlib库使用中文绘图
  10. python 的几种数据类型