线程状态 1. 初始(NEW):新创建了一个线程对象,但还没有调用start()方法。 2. 运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。 线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。 该状态的线 ...
分类:
编程语言 时间:
2019-07-26 13:13:47
阅读次数:
138
一 问题概述 线程或者进程之间有两种关系 同步和互斥,我们通常实现同步方法是使用线程的等待唤醒机制,而等待唤醒机制的使用是建立在互斥的继承上的。但是同步线程并不一定是必须要实现互斥的。比如一个线程打印A,一个线程打印B。这两个线程就没有互斥关系,但是提出这么个需求:交替打印A、B 。我们一般的解决方 ...
分类:
编程语言 时间:
2019-07-22 15:23:34
阅读次数:
352
C# 8.0中,提供了一种新的IAsyncEnumerable<T>接口,在对集合进行迭代时,支持异步操作。比如在读取文本中的多行字符串时,如果读取每行字符串的时候使用同步方法,那么会导致线程堵塞。IAsyncEnumerable<T>可以解决这种情况,在迭代的时候支持使用异步方法。也就是说,之前我 ...
分类:
编程语言 时间:
2019-07-12 09:33:58
阅读次数:
354
synchronized JDK1.6对synchronized进行了各种优化,性能已经和ReentrantLock差不多了。 Java中的每一个对象都可以作为锁。具体表现为以下3种形式。 对于普通同步方法,锁是当前实例对象。 对于静态同步方法,锁是当前类的Class对象。 对于同步方法块,锁是Sy ...
分类:
其他好文 时间:
2019-07-08 00:13:02
阅读次数:
144
同步(Synchronous)和异步(Asynchronous) 同步和异步通常来形容一次方法调用,同步方法调用一旦开始,调用者必须等到方法调用返回后,才能继续后续的行为。 异步方法调用更像一个消息传递,一旦开始,方法调用就会立即返回,调用者就可以继续后续的操作。 而异步方法通常会在另外一个线程中“ ...
分类:
编程语言 时间:
2019-07-08 00:04:24
阅读次数:
138
给线程起有意义的名字,这样方便找Bug 缩小同步范围,从而减少锁的争用,例如对于 synchronized,应该尽量使用同步块而不是同步方法 多用同步工具少用 wait() 和 notify()。首先,CountDownLatch, CyclicBarrier, Semaphore 和Exchang ...
分类:
编程语言 时间:
2019-07-03 13:59:22
阅读次数:
104
线程同步条件 形成队列+锁机制 问题 上下文切换和调度延时,引起性能问题。 如果一个优先级高的线程等待一个优先级低的线程释放锁会导致优先级倒置。 synchronnized synchronnized方法和synchronnized块 目标要对+效率要高 同步方法:锁的是对象的资源 如果要锁的不变量 ...
分类:
编程语言 时间:
2019-07-02 21:01:45
阅读次数:
113
主从复制解决方案主从复制解决方案是mysql自身提供的一种高可用解决方案,数据同步方法采用的是MySQL复制技术。MySQL复制技术:主从架构中,从服务器到主服务器拉取二进制日志文件,然后再将日志文件解析成相应的sql在从服务器上重新执行一遍主服务器的操作,通过这种方式保持数据的一致性。注意:MySQL复制技术仅仅提供了日志的同步执行功能,而从服务器只提供读操作,并且主服务器故障时,必须通过手动来
分类:
数据库 时间:
2019-07-02 17:32:09
阅读次数:
131
ntpdate 时间同步 同步方法 ntpdate ntp服务器IP 例: ntpdate 192.168.37.11 自动运行同步时间脚本 crontab -e * */1 * * * /usr/sbin/ntpdate 192.168.37.11 (每一小时同步一次时间) 设置完毕后可以使用cr ...
分类:
其他好文 时间:
2019-06-30 14:29:13
阅读次数:
124
运行机制 异常 线程 Java程序运行的时候底层也是多线程,除了main,gc也在同时运行。 线程状态: 线程同步(多个线程要访问同一份资源) 1. 同步块 Synchronized(引用类型){} 2. 同步方法 Public synchronized test(){} 线程安全:hashtabl ...
分类:
编程语言 时间:
2019-06-30 11:11:09
阅读次数:
128