cas,又称自旋锁或者无限死循环也行,代码层面的锁的类似机制。一定程度上优于synchronized. java8以后使用cas+synchronized对ConcurrentHashMap进行了优化,摒弃了之前的ReentrantLock。
使用LockSupport.unpark(线程名)和LockSupport.park进行线程的执行控制。
char[] charArray = “123456789”.toCharArray();
char[] charArray2 = “ABCDEFGHI”.toCharArray();
c1=new Thread(()->{
for (int i = 0; i < charArray.length; i++) {
System.out.print(charArray[i]);
LockSupport.unpark(c2);
LockSupport.park();
}
},"c1") ;
c2=new Thread(()->{
for (int i = 0; i < charArray2.length; i++) {
LockSupport.park();
System.out.println(charArray2[i]);
LockSupport.unpark(c1);
}
},"c1") ;
c1.start();
c2.start();