tmachc's notes

Stay Hungry, Stay Foolish.

0%

相比同步锁,JUC包中的锁的功能更加强大,它为锁提供了一个框架,该框架允许更灵活地使用锁,只是它的用法更难。

JUC包中的锁,包括:Lock接口,ReadWriteLock接口,LockSupport阻塞原语,Condition条件,AbstractOwnableSynchronizer、AbstractQueuedSynchronizer、AbstractQueuedLongSynchronizer三个抽象类,ReentrantLock独占锁,ReentrantReadWriteLock读写锁。由于CountDownLatch,CyclicBarrier和Semaphore也是通过AQS来实现的;文中也将它们归纳到锁的框架中进行介绍。

阅读全文 »

根据修改的数据类型,可以将JUC包中的原子操作类可以分为4类。

1.基本类型: AtomicInteger, AtomicLong, AtomicBoolean ;
2.数组类型: AtomicIntegerArray, AtomicLongArray, AtomicReferenceArray ;
3.引用类型: AtomicReference, AtomicStampedRerence, AtomicMarkableReference ;
4.对象的属性修改类型: AtomicIntegerFieldUpdater, AtomicLongFieldUpdater, AtomicReferenceFieldUpdater 。

这些类存在的目的是对相应的数据进行原子操作。

原子操作的描述是:多个线程执行一个操作时,其中任何一个线程要么完全执行完此操作,要么没有执行此操作的任何步骤,那么这个操作就是原子的。

这些类主要都是使用CAS机制以及volatile关键字来保证操作原子性

阅读全文 »

General通用

Keypress OSX Key Command
Ctrl + Shift + P ⌘ + ⇧ + P 打开命令框
Ctrl + KB ⌘ + K, ⌘ + B 开启/关闭侧边栏
Ctrl + Shift + Alt + P ⌃ + ⇧ + P Show scope in status bar
阅读全文 »

Python字符串

Python中不支持char单字符类型,单字符在Python中也是一个字符串

Python字符串更新

更新Python字符串方法

1
2
3
4
#!/usr/bin/python

var1 = 'Hello World!'
print "Updated String :- ", var1[:6] + 'Python'

实际执行效果为

Updated String :- Hello Python

阅读全文 »