java基础—如何创建线程?如何保证线程安全?

在java中如果要创建线程的话,一般有两种方式:

1)继承Thread类;2)实现Runnable接口。

在java中如何保证线程安全?

一般说来,确保线程安全的方法有这几个:竞争与原子操作、同步与锁、可重入、过度优化

个人认为,保证线程安全,无外乎保持线程同步的方式,

如:@synchronized、NSLock、dispatch_semaphore、NSCondition、pthread_mutex、OSSpinLock

然而:

OSSpinLock和dispatch_semaphore的效率远远高于其他。

@synchronized和NSConditionLock效率较差。

鉴于OSSpinLock的不安全,所以我们在开发中如果考虑性能的话,建议使用dispatch_semaphore。

如果不考虑性能,只是图个方便的话,那就使用@synchronized。


详细见以下链接:http://blog.csdn.net/tianyitianyi1/article/details/52041883


你可能感兴趣的:(java)