Java_线程

Posted HJ0101

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java_线程相关的知识,希望对你有一定的参考价值。

什么是进程?
  进程是指可执行程序并存放在计算机存储器的一个指令序列,它是一个动态的执行过程;
  多任务可以同时进行
什么是线程?
  线程是比进程更小的运行单位,线程相当于一个子程序;
  cpu通过时间片轮转的方式来达到多任务同时运行的效果
线程的创建:
  1.创建Thread类的子类
  2.创建实现Runnable接口的类
线程的状态:
  1.新建(New)
  2.可运行(Runnable)
  3.运行时(Running)
  4.阻塞(Blocked)
  5.终止(Dead)
                                                         线程的生命周期

 

线程的优先级:
  Java为线程一共了10个优先级;数字越大,优先级越高
  优先级可以用1-10的整数表示,超出范围会抛出异常;
  main()主线程的默认优先级为5;
常量优先级:MAX_PRIORITY:最高优先级10
  MIN_PRIORITY:最高优先级0
  NORM_PRIORITY:默认优先级5
  注意:线程优先级的设置受操作系统环境的影响,不能完全保证优先级高的线程就一定优先运行;

线程同步
  各个线程通过竞争CPU时间而获得运行机会;
  各线程占用CPU的时间是不可预测的;
  一个线程在什么时候会被暂停也是不可预测的;
  使用同步关键字synchronized将对象锁定,只允许一个线程对当前对象进行操作
  同步方法:public synchronized void add(){}
  同步语句块:synchronized(obj){} obj是指要锁定的对象,如 synchronized(this){}
线程间通信
  生产者和消费者问题:
  定义一个boolean变量,把当前对象看作一个容器,为true时,表示容器中有产品,不需要生产(线程等待),可以消费;为false时,需要生产,才能消费(线程等待).
  激活wait()线程的方法:notify()唤醒等待的某一个线程(随机).
  notifyAll()唤醒所有线程.

以上是关于Java_线程的主要内容,如果未能解决你的问题,请参考以下文章

求多线程读取一个文件,然后写到另外一个文件中的Java实现。

Java_线程池

Java之旅_高级教程_多线程编程

Java_多线程

黑马程序员_java08_多线程

阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第5节 线程池_2_线程池的代码实现