上一页 1 ··· 67 68 69 70 71 72 73 74 75 ··· 81 下一页
摘要: 死锁在并发编程中是需要避免的,要修正死锁问题,必须明白死锁发生的条件: 1.互斥条件: 任务中使用的资源至少有一个是不能共享的 2.请求与保持条件: 一个进程因请求资源而阻塞时,对已获得的资源保持不放。 3.不剥夺条件: 进程已获得的资源,在末使用完之前,不能强行剥夺。 4.循环等待条件: 若干进程 阅读全文
posted @ 2018-07-11 13:27 Mars.wang 阅读(196) 评论(0) 推荐(0)
摘要: 总结 A. 无论synchronized关键字加在方法上还是对象上,如果它作用的对象是非静态的,则它取得的锁是对象;如果synchronized作用对象是静态方法或一个类,则它取得的锁是对类,该类所有的对象同一把锁。 B. 每个对象只有一个锁(lock)与之相关联,谁拿到这个锁谁就可以运行它所控制的 阅读全文
posted @ 2018-07-11 11:59 Mars.wang 阅读(258) 评论(0) 推荐(0)
摘要: 线程安全和非线程安全是多线程的经典问题,非线程安全会在多个线程对同一个对象并发访问时发生。 注意1: 非线程安全的问题存在于实例变量中,如果是方法内部的私有变量,则不存在非线程安全问题。 实例变量是对象的各个方法共有的,静态变量是类的所有对象共有的,这些变量在多线程情况下,就需要考虑线程安全问题。 阅读全文
posted @ 2018-07-11 11:33 Mars.wang 阅读(206) 评论(0) 推荐(0)
摘要: java语言中提供了各种各样的流供我们操纵数据,其中管道流(pipeStream)是一种特殊的流,用于在不同线程间直接传送数据。 一个线程发送数据到输出管道,另一个线程从输入管道读取数据,通过使用管道,实现不同线程间的通信,而无需借助于临时文件之类的东西。 在java jdk中提供了4个类用于线程间 阅读全文
posted @ 2018-07-11 10:30 Mars.wang 阅读(1595) 评论(0) 推荐(0)
摘要: 多生产者和多消费者是线程通信的经典案例,但是和生产者-消费者相比更为复杂,而且可能会产生程序假死。 阅读全文
posted @ 2018-07-11 09:21 Mars.wang 阅读(1273) 评论(0) 推荐(0)
摘要: 输出就是set和get交替打印 阅读全文
posted @ 2018-07-10 18:31 Mars.wang 阅读(175) 评论(0) 推荐(0)
摘要: 多线程中的通信是非常重要的概念,线程直接实现通信就可以并发完成很多复杂工作。 java在Object类中就设计了wait()和notify()两个方法,以解决这个问题。 1.释义: wait()方法将当前线程暂停,置于“预执行队列”中,而notify()则用于通知一个在wait等待中的线程,可以继续 阅读全文
posted @ 2018-07-10 17:53 Mars.wang 阅读(451) 评论(0) 推荐(0)
摘要: 注:源文件必须是无bom utf8格式 阅读全文
posted @ 2018-07-09 18:35 Mars.wang 阅读(22199) 评论(0) 推荐(0)
摘要: package Test; /** * Created by wangbin10 on 2018/7/9. * 我们知道静态变量属于类级别变量,对应每个类只有一份,类的所有实例共有一份,而成员变量则分别属于每个对象; * 那么在类的继承中,父类的静态变量和成员变量,子类都会继承,继承的原则是什么?通过下面的测试,我们的结论是: * 1.不仅类的对象共享类的静态变量,父类的所有子类对象也... 阅读全文
posted @ 2018-07-09 11:10 Mars.wang 阅读(3274) 评论(0) 推荐(0)
摘要: start="2018-06-17" end="2018-07-01" min=`date -d "${start}" +%Y%m%d` max=`date -d "${end}" +%Y%m%d` [ -e /tmp/fd3 ] || mkfifo /tmp/fd3 exec 5/tmp/fd3 rm -rf /tmp/fd3 for ((i=1;i&5 done while [ ... 阅读全文
posted @ 2018-07-04 10:41 Mars.wang 阅读(1040) 评论(0) 推荐(0)
上一页 1 ··· 67 68 69 70 71 72 73 74 75 ··· 81 下一页