vim /etc/hostname |
月度归档:2017年11月
kurento录像目录配置
如果提示ipv4映射失败,则重启vmware.
sudo docker run --name kms -p 8888:8888 -v /home/abc/waypalers.cn/kms:/tmp -d kurento/kurento-media-server |
rails数据库配置获取
获取数据库的配置
Waypal::Application.config.database_configuration
多线程测试
public class SyncTest{ private Long val = 1L; // private Long val = new Long(1L); private Object lock = new Object(); public void printVal(int v){ synchronized (lock){ for (int i = 0; i < 50; i++) { System.out.print(v); } } } public void printVal2(int v){ synchronized (SyncTest.class){ for (int i = 0; i < 50; i++) { System.out.print(v); } } } public void printVal3(int v){ synchronized (SyncTest.class) { for (int i = 0; i < 50; i++) { System.out.print(v); } } } public synchronized void printVal4(int v){ for (int i = 0; i < 50; i++) { System.out.print(v); } } public synchronized void printVal5(int v){ for (int i = 0; i < 50; i++) { System.out.print(v); } } public void printVal6(int v){ val = (long)v; //同为一个st对象,但在同步时琐定到不对象,故也达不到同步的目的。 synchronized (val) { for (int i = 0; i < 50; i++) { val++; System.out.print(v); } } } public void printVal7(int v){ val = (long)v; synchronized (val) { for (int i = 0; i < 50; i++) { val++; System.out.print(v); } } } public void printVal8(int v){ synchronized (this) { for (int i = 0; i < 50; i++) { val++; System.out.print(v); } } } public void printVal9(int v){ synchronized (this) { for (int i = 0; i < 50; i++) { val++; System.out.print(v); } } } public static void main(String args[]) { final SyncTest st = new SyncTest(); final SyncTest st2 = new SyncTest(); Thread f1 = new Thread(new Runnable() { public void run() { st.printVal6(1); } }); f1.start(); Thread f2 = new Thread(new Runnable() { public void run() { st.printVal7(2); } }); f2.start(); } } |
1.修饰函数时,相同对象互斥,不同对象等同于没有synchronized
2.Long val=1L时,多个实例间仍然是同步的。故原子类型不合适作同步变量使用。
图示: