上篇我们讲了使用wait()和notify()使线程间实现合作,这种方式很直接也很灵活,但是使用之前需要获取对象的锁,notify()调用的次数如果小于等待线程的数量就会导致有的线程会一直等待下去。这篇我们讲多线程间接协作的方式,阻塞队列和管道通讯,间接协作的优点是使用起来更简单并且不易出错。 阻塞 ...
分类:
编程语言 时间:
2018-06-23 22:51:59
阅读次数:
195
Android初学第24天 10_FragmentArguments 代码 CrimeListFragment.java ...
分类:
移动开发 时间:
2018-06-19 00:54:21
阅读次数:
206
观察者模式又叫做发布-订阅-模式、模型-视图-模式、源-监听器-模式或者从属者模式。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己,它是一种行为型模式 观察者模式所涉及的角色有: 抽象主题(S ...
分类:
编程语言 时间:
2018-06-18 11:56:24
阅读次数:
203
1. 项目文件结构 2. 接下来看看 文件中的内容 2.1. 2.2. notify 模块下的文件 2). wechat.py 3). email.py msg.py 文件 与 email.py 只有文件名与类型不同,其他相同 3. 总结 3.1. 步骤 3.2. 介绍 及 使用途径 1. 这样写是 ...
分类:
编程语言 时间:
2018-06-16 20:04:17
阅读次数:
206
作为项目后端工程师,本职的开发工作在6月7日前已经基本结束了。 小组本预计在6月7日发布Alpha版本,但6月7日当天小组一位同学在Git操作中出现了网络问题,前端代码有非常大一部分遭到了不可逆转的覆盖,因此当天发布的计划也就此破产。而在重新编写这部分前端代码后,前端又出现了各种各样千奇百怪的BUG ...
分类:
其他好文 时间:
2018-06-15 20:57:45
阅读次数:
149
如何使用Lock取代synchronized 在多线程中,1.5版本之前,我们都使用同步代码块或者同步方法来解决线程安全问题 比如: 同步代码块 synchronized(锁对象){ 功能代码; } 同步方法 public synchronized void test(){ 功能代码; } 在1.5 ...
分类:
其他好文 时间:
2018-06-14 18:38:37
阅读次数:
163
1,notify的同步块完了,才会运行wait的同步块 2,interrupt()不是静态方法,用在wait的线程上会有InteruptException,锁也会被释放 3,notify()唤醒的线程是随机的,以前不知道唤醒哪个,了解到notify是object对象有的,哪个用相关的对象锁了,就会解 ...
分类:
编程语言 时间:
2018-06-14 01:07:26
阅读次数:
175
操作线程的常用方法大体上有sleep(),join(),yield()(让位),wait(),notify(),notifyAll(),关键字synchronized等等。 由于这些方法功能有些相似,所以有时候会混乱,我们就需要了解它们的具体的原理,以及通过自己写的具体的例子去巩固,加深印象 sle ...
分类:
编程语言 时间:
2018-06-11 02:15:50
阅读次数:
257
微信公众号共有三种,服务号、订阅号、企业号。它们在获取AccessToken上各有不同。 其中订阅号比较坑,它的AccessToken是需定时刷新,重复获取将导致上次获取的AccessToken失效。 而企业号就比较好,AccessToken有效期同样为7200秒,但有效期内重复获取返回相同结果。 ...
分类:
微信 时间:
2018-06-09 23:09:09
阅读次数:
771
一、外观模式介绍: 外观模式为子系统的一组接口提供一个统一的接口。外观定义了一个高层接口,使得子系统更容易使用。使用外观模式时,我们创建了一个统一的类,用来包装子系统中一个或多个复杂的类,客户端可以直接通过外观类来调用内部子系统中方法,从而外观模式让客户和子系统之间避免了紧耦合,并且外观模式可以解决 ...