基础篇_线程 第5集 多线程的安全问题--解决之道同步函数
来源:互联网 发布:asp.net连接数据库 编辑:程序博客网 时间:2024/06/10 22:28
同步函数--卖票示例
同步函数用是哪一个锁呢??---this
函数需要被对象调用。那么函数都有一个所属对象引用。就是this。
通过该程序进行验证。
使用两个线程来卖票。
一个线程在同步函数中,一个在同步代码块中。
同步函数用是哪一个锁呢??---this
函数需要被对象调用。那么函数都有一个所属对象引用。就是this。
通过该程序进行验证。
使用两个线程来卖票。
一个线程在同步函数中,一个在同步代码块中。
都在执行卖票动作。
class Ticket2 implements Runnable //extends Thread{private int tick=100;Object obj=new Object();boolean flag=true;public void run(){if(flag){while(true){synchronized(this){if(tick>0){try {Thread.sleep(10);} catch (Exception e) {}System.out.println(Thread.currentThread().getName()+" code "+tick--);}}}}elsewhile(true)show();}public synchronized void show()//同步函数用的锁是哪一个呢?this{if(tick>0){try {Thread.sleep(10);} catch (Exception e) {}System.out.println(Thread.currentThread().getName()+" show "+tick--);}}}public class ThisLockDemo {public static void main(String[] args) {Ticket2 t=new Ticket2();Thread t1=new Thread(t);//创建了一个线程Thread t2=new Thread(t);//创建了一个线程//Thread t3=new Thread(t);//创建了一个线程//Thread t4=new Thread(t);//创建了一个线程t1.start();try {Thread.sleep(10);} catch (Exception e){}t.flag=false;t2.start();//t3.start();//t4.start();}}
0 0
- 基础篇_线程 第5集 多线程的安全问题--解决之道同步函数
- 基础篇_线程 第4集 多线程的安全问题--解决之道同步代码块
- 多线程_同步代码块的方式解决线程安全问题
- 多线程_同步代码块解决线程安全问题的解释
- 黑马程序员------多线程(No.1)(概述、线程的创建、安全问题、同步锁、同步函数)
- java基础之多线程的安全问题、同步
- 多线程(四)线程的同步之线程安全问题
- Java笔记3 多线程<1>线程概述、多线程的创建、多线程的安全问题、静态同步函数的锁、死锁
- 线程安全问题(使用同步函数)
- 多线程:线程的安全问题
- 多线程-线程安全问题的产生原因分析以及同步代码块的方式解决线程安全问题
- 多线程_线程安全问题的产生原因分析
- 多线程_线程同步
- java多线程㈡—线程安全问题(同步代码块or同步函数)
- 线程同步引发的安全问题
- java语言基础(91)——多线程(同步方法解决线程安全问题)
- Java_基础—多线程(线程安全问题)
- 黑马程序员-(多线程)了解线程与如何解决线程同步到来的安全问题!(面试)
- 基础篇_线程 第4集 多线程的安全问题--解决之道同步代码块
- 欢迎使用CSDN-markdown编辑器
- startActivityForResult用法详解-转自Ruthless
- SDAU dp专题 1007
- linux中断处理程序
- 基础篇_线程 第5集 多线程的安全问题--解决之道同步函数
- 并发容器之CopyOnWriteArrayList
- CI3.0无法装入中文语言包(载入分页类的时候)
- java 向上转型和向下转型
- 数据结构之队列
- 下面这个程序很奇怪
- 冒泡应用
- SDAU dp专题 1008
- 配置struts2遇到的class not found 的问题