精易论坛
标题:
Java多线程
[打印本页]
作者:
4378430
时间:
2018-1-4 14:09
标题:
Java多线程
本帖最后由 4378430 于 2018-1-4 14:25 编辑
多线程:
进程:当前正在运行的程序,一个应用程序在内存中的执行区域
线程:进程中的一个执行控制单元,执行路径
一个进程可以有一个线程,也可以有多个线程
单线程:安全性高,但是效率低
多线程:安全性低,效率高
即使是多线程,在同一个时刻,也就是只会有一个线程在执行任务.
补充:
synchronized:同步(锁) 可以修饰代码块和方法,被修饰的代码块和方法一旦被某个线程访问,则直接锁住,其他的线程将无法访问
同步代码块:
synchronized(锁对象){
}
非静态同步方法的锁对象是this
静态的同步方法的锁对象是当前类的字节码对象
package com.wwangluo_3;
public class giftDemo implements Runnable {
// 有100份礼品,两人同时发送,当剩下的礼品小于10份的时候则不再送出,利用多线程模拟该过程并将线程的名称打印出来.
int gift = 100;
@Override
public void run() {
while (true) {
synchronized (this) {
if (gift >= 10) {
System.out.println(Thread.currentThread().getName() + ":" + gift--);
} else {
break;
}
}
}
}
}<div class="blockcode"><blockquote>package com.wwangluo_3;
public class giftDemo01 {
// 有100份礼品,两人同时发送,当剩下的礼品小于10份的时候则不再送出,利用多线程模拟该过程并将线程的名称打印出来.
public static void main(String[] args) {
giftDemo gd = new giftDemo();
Thread t = new Thread(gd);
t.setName("员工01");
t.start();
Thread t2 = new Thread(gd);
t2.setName("员工02");
t2.start();
}
}
复制代码
作者:
胆小的老虎
时间:
2018-1-4 14:19
你还可以介绍一下线程锁
作者:
4378430
时间:
2018-1-4 14:21
补充一下同步锁: 可以修饰代码块和方法,被修饰的代码块和方法一旦被某个线程访问,则直接锁住,其他的线程将无法访问
作者:
4378430
时间:
2018-1-4 14:21
补充一下同步锁: 可以修饰代码块和方法,被修饰的代码块和方法一旦被某个线程访问,则直接锁住,其他的线程将无法访问
作者:
4378430
时间:
2018-1-4 14:25
胆小的老虎 发表于 2018-1-4 14:19
你还可以介绍一下线程锁
谢谢提醒
欢迎光临 精易论坛 (https://125.confly.eu.org/)
Powered by Discuz! X3.4