1.共享变量 FreeMarker 的共享变量是我最喜欢的“隐藏”功能之一。此功能可以让你设置自动添加到所有模板的值。 例如,可以设置应用程序的名称作为共享变量。 1 2 Configuration configuration = new Configuration(); configuration ...
分类:
Web程序 时间:
2017-11-11 14:12:30
阅读次数:
223
#pragma data_seg介绍 用#pragma data_seg建立一个新的数据段并定义共享数据,其具体格式为: #pragma data_seg ("shareddata") HWND sharedwnd=NULL;//共享数据 #pragma data_seg() 1,#pragma d ...
分类:
系统相关 时间:
2017-11-05 15:05:27
阅读次数:
199
绝对的线程安全:一个内部有共享变量的对象构造后,就能在多线程环境下随意使用,且不发生错误,那么这个对象是线程安全的。 但现实中一般是相对安全的,即在对象构造后需要一些额外的操作来保证线程安全。 实现线程安全的方法: 1.互斥同步,在线程对共享资源操作之前,先加锁,操作完再解锁。 2.非阻塞同步,先对 ...
分类:
编程语言 时间:
2017-11-04 11:30:37
阅读次数:
143
volatile:易变的,是说这变量可能会被意想不到地改变。 1.可见性 对于可见性,Java提供了volatile关键字来保证可见性。 当一个共享变量被volatile修饰时,它会保证修改的值会立即被更新到主存,当有其他线程需要读取时,它会去内存中读取新值。 而普通的共享变量不能保证可见性,因为普 ...
分类:
其他好文 时间:
2017-10-31 14:29:11
阅读次数:
166
如果一个线程对共享变量的修改,能够被其它线程看到,那么就能说明共享变量在线程之间是可见的。如果一个变量在多个线程的工作内存中都存在副本,那么这个变量就是这几个线程的共享变量。Java内存模型(Java Memory Model,JMM)描述了Java程序中各种变量(线程共享变量)的访问规则,以及在J ...
分类:
编程语言 时间:
2017-10-29 18:43:15
阅读次数:
150
java原子类不多,包路径位于:java.util.concurrent.atomic,大致有如下的类: 普通的自增减(value++或者value--)操作为非原子操作,但是借助原子类包装的自增减操作的保证了原子性。 测试代码: 这是一段经典的多线程访问共享变量的实现线程安全的例子。 如果采用注释 ...
分类:
编程语言 时间:
2017-10-29 18:42:46
阅读次数:
190
转转前端http://zzfe.org 如何在Promise链中共享变量?https://blog.fundebug.com/2017/09/04/promise-share-variable 10分钟学会ES7+ES8http://zzfe.org/#/detail/59b7718f9d66341 ...
分类:
其他好文 时间:
2017-10-29 11:07:36
阅读次数:
135
多线程使用共享变量,就会涉及到一个线程同步的问题。那如何解决呢? 1) 重构程序,移除多线程的共享变量,让一个线程只访问一个自有变量 2) 使用原子操作,一个操作只占用一个量子时间,一次完成,只有当当前操作完成之后,其他线程才能进行操作。这样可以避免使用独占锁,避免死锁。... ...
分类:
编程语言 时间:
2017-10-27 16:37:05
阅读次数:
310
接上文 多线程编程学习笔记-基础(一) 接上文 多线程编程学习笔记-基础(二) 九、向线程传递参数 1.代码如下。 2.结果如下图。 线程1,我们通过实例化对象来进行参数传递。 线程2,我们使用Thread.Start()来传递参数,不过此方法只接收单个参数,而且是对象类型。 线程3,我们使用lam ...
分类:
编程语言 时间:
2017-10-25 15:16:38
阅读次数:
219
mysql 中的 latch锁和Tlock(事务锁), DML加锁规则,以及死锁分析。 一.Latch和Tlock的关系 Latch:为保护临界资源的正确性而设计,例如保护正在使用的内存页面不被破坏等。 没有死锁检测机制,轻量锁,并且作用对象时内存页面或是内存共享变量. Tlock:事务锁,作用对象 ...
分类:
数据库 时间:
2017-10-16 11:09:29
阅读次数:
200