赞
踩
进程是指在系统中正在运行的一个应用程序,线程是比进程更小的执行单位
一个进程可以产生多个线程,多线程机制使程序运行效率变得更高
多线程好处:解决了多部分代码同时运行的问题
多线程弊端: 线程太多,单个线程运行效率降低
多线程可以实现并发操作,可以提高执行效率。
影响单个线程执行的效率。
多线程实现
继承Thread类
实现Runnable接口
1.子类覆盖父类中的run方法,将线程运行的代码存放在run中。
2.建立子类对象的同时线程也被创建。
3.通过调用start方法开启线程。
start()–执行
1.子类覆盖接口中的run方法。
2.通过Thread类创建线程,并将实现了Runnable接口的子类对象作为参数传递给Thread类的构造函数。
3.Thread类对象调用start方法开启线程。
重写run0方法,通过向Thr ead0方法传递Runmable对象参数来实现线程
线程中执行的代码写到run()方法中
启动线程,调用start()方法
sleep方法需要指定睡眠时间,单位是毫秒。
线程的五种状态:创建, 就绪,运行,阻塞,终止
实现Runnable接口,方便实现资源共享
继承Thread类受单继承影响,不适合多个线程共享资源
Thread类中的主要方法如下
方法 | 描述 |
---|---|
public static Thread currentThread() | 返回当前的线程 |
public final String getName() | 返回线程名称 |
public final void setPriority(int priority) | 设置线程优先级 |
public void start() | 开始执行线程 |
public static void sleep(long m) | 使用目前的线程休眠m秒 (释放执行权和不释放锁) |
public final void yield() | 暂停目前的线程,运行其他 线程 |
public void run() | 执行线程 |
定义 | 描述 | 表示的常量 |
---|---|---|
public static final int MIN_PRIORITY | 最低优先级 | 1 |
public static final int NORM_PRIORITY | 中等优先级,线 程默认的优先级 | 5 |
public static final int MAX_PRIORITY | 最高优先级 | 10 |
线程礼让
线程礼让即调用Thread.yield()方法暂停当前正在运行的线程,使其他线程先行运行
Object是所有类的祖先,包含以下几个对线程操作相关的方法
方法 | 描述 |
---|---|
public final void wait() | 线程等待 |
public final void wait(long timeout) | 线程等待,并指定等待时间,以毫秒为单位 (释放执行权和锁) |
Public void notify() | 唤醒第一个等待的线程 |
Public void notifyAll() | 唤醒全部等待的线程 |
同步的特点
同步的前提:
同步需要两个或者两个以上的线程。
多个线程使用的是同一资源。
未满足这两个条件,不能称其为同步。
同步的弊端:
当线程相当多时,因为每个线程都会去判断同步上的锁,这是很耗费资源的,无形中会降低程序的运行效率。
同步是指在同一时间段内只能运行一个线程
同步可以解决线程中的安全问题
同步代码块
synchronized(同步对象){
需要同步的代码;
}
同步方法
synchronized 方法返回值 方法名称(参数列表){}
死锁:彼此占用对方所需要的资源
等待唤醒机制
生产者与消费者实例
生产者生产一个产品后,消费者才能进行消费,消费完之后,生产者继续生产
来源 | 方法 | 说明 |
---|---|---|
start() | 新建的线程进入Runnable状态 | |
run() | 线程进入Running 状态 | |
sleep() | 线程睡眠指定的一段时间 | |
getName() | 获取线程名称 | |
Thread类 | currentThread() | 获取当前正在运行的线程对象 |
yield() | 线程让位 | |
join() | 线程加入 | |
getPriority() setPriority() | 设置/获取线程优先级 | |
wait() | 等待,用于线程通信 | |
Object类 | notify() | 通知,用于线程通信 |
notifyAll() | 通知所有线程,用于线程通信 |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。