synchronize voilatile汇编有什么不同?
voilatile在汇编的时候会生成#lock前缀,进行总线锁定或者缓存锁定,
synchronize也是这样,那么他们之间在生成的汇编代码上有什么不同吗?
Synchronized编译器主要是用来优化同步控制流,它可以避免多线程同步时的“死锁”问题。但是,同步控制流的优化并不意味着代码的执行效率会降低。Synchronized编译器可能会在某些情况下提高代码的执行效率。
Voilatile汇编是一种编程模型,它将编译后的汇编代码封装在一个可以被多线程访问的内存区域中。Voilatile汇编的优点是可以提高代码的并发性和多线程的性能,但是它的缺点是编译后的汇编代码可能会比同步编译器编译后的汇编代码更容易发生死锁。
因此,对于需要在多线程环境下编写代码的开发者,他们需要根据具体的代码需求和环境来选择合适的同步方法和编译器。