|
本帖最后由 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();
- }
- }
复制代码
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|