JAVA中的多线程——死锁
JAVA中的多线程——死锁
了解死锁,是为了开发中避免死锁。
- /*
- * 死锁
- * 同步中嵌套同步,锁却不同
- *
- * */
- class Ticket3 implements Runnable {
- private int tick = 1000;
- Object object = new Object();
- boolean flag=true;
- public void run() {
- if(flag){
- while (true) {
- synchronized (object) {
- show1();
- }
- }
- }
- else {
- while(true)
- show1();
- }
- }
- public synchronized void show1(){
- synchronized (object) {
- if (tick > 0) {
- }
- try {
- Thread.sleep(10);
- } catch (Exception e) {
- // TODO: handle exception
- }
- System.out.println(Thread.currentThread().getName() + "sale:" + tick--);
- }
- }
- }
- public class DeadLockDemo {
- public static void main(String args[]) {
- Ticket3 ticket1 = new Ticket3();
- Thread t1 =new Thread(ticket1);
- Thread t2=new Thread(ticket1);
- t1.start();
- try {
- Thread.sleep(10);
- } catch (Exception e) {
- // TODO: handle exception
- }
- ticket1.flag=false;
- t2.start();
- }
- }
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
JAVA中的多线程——练习
JAVA中的多线程——练习 /* *需求: *银行有一个金库 *有两个储户分别存300元,每次存100,存3次 *该程序是否有安全问题,有的话如何解决 * *问题: *哪些代码是多线程运行代码 *明确共享数据 *明确多线程运行代码中哪些语句是操作共享数据的 **/ /** *synchronized可以修饰函数, **/ //classBank{ //privateintsum; // //publicvoidadd(intn){ //sum=sum+n; //System.out.println("sum="+sum); //} //} // //classCusimplementsRunnable{ //privateBankbank=newBank(); // //publicvoidrun(){ //for(intx=0;x<3;x++) //bank.add(100); //} //} // //publicclassThreadTest2{ //publicstaticvoidmain(Stringargs[]){ //Cuscus=newCus(); //Threa...
- 下一篇
深度学习之 TensorFlow(三):TensorFlow 源代码解析
分析一下 TensorFlow 的文件结构。这里的源代码版本是 TensorFlow1.7.0 。 目录结构如下: 其中的核心目录是 tensorflow 目录,最重要的源代码保存在这里,目录结构如下: 1.contrib 目录中保存的是将常用的功能封装成的高级 API,但是这个目录并不是官方支持的,很有可能在高级 API 完善后被官方迁移到核心的 TensorFlow 目录中或去掉。 2.core 目录中保存的都是 C 语言文件,是 TensorFlow 的原始实现。 3.examples 目录中给出了深度学习的一些例子,包括 MNIST、Word2vec、Deepdream、Iris、HDF5等例子。 4.g3doc 目录可以认为是 TensorFlow 的离线手册,用Markdown 维护。 5.python 目录中包含很多函数的实现,包括激活函数、卷积函数、池化函数、损失函数、优化方法等。
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- 2048小游戏-低调大师作品
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Red5直播服务器,属于Java语言的直播服务器
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7