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_线程的主要内容,如果未能解决你的问题,请参考以下文章