多线程
什么是进程?
进程就是一个程序正在运行时期,所占有的内存的资源
什么是线程?
在进程中的一个小程序,对于CPU是一个独立的执行路径,这个执行路径就是线程
创建线程的两种方式:
1、继承Thread类
自定义类继承Thread
重写run()方法
创建自定义对象
调用start()方法
2、实现Runnable接口
自定义类实现Runnable接口
重写run()方法
创建自定义类对象,
创建Thread对象,并把自定义类对象作为构造参数
调用start()方法
方法:
getName()返回线程的名字
setName()设置线程名字
currenrThread()获取当前运行的线程对象
线程优先级:
1-10
getPriority()获取线程优先级
getPriority()更改线程的优先级
线程的礼让:
Thread.yield()暂停当前正在执行的线程对象,并执行其他线程
等待终止线程:
public final void join(Long mills)等待该线程终止的时间最长为mills毫秒
注意:必须要在线程启动后(start)才能使用
守护线程
public final void setDaemon(boolean on)将该线程标记为守护线程或用户线程
当正在运行的线程都是守护线程,java虚拟机退出
Lock锁
Lock lock=new ReentrantLock();
lock()上锁
unlock()解锁
同步:
synchronized(){}同步代码块
同步方法在方法上写synchronized
死锁:多个线程之间,互相访问
等待唤醒机制:
wait()、notiy()来完成 |
|