Multithreading 线程感知和线程安全之间有什么区别?

Multithreading 线程感知和线程安全之间有什么区别?,multithreading,language-agnostic,concurrency,thread-safety,reentrancy,Multithreading,Language Agnostic,Concurrency,Thread Safety,Reentrancy,线程感知和线程安全之间的区别是什么?我认为一个执行自己的互斥锁序列化的函数是线程安全的,但可能没有线程感知。 线程感知 在任何给定时间,对象上最多可以有一个线程处于活动状态。对象知道它周围的线程,并通过将所有线程放入队列来保护自己不受线程的影响。由于在任何给定时间,对象上只能有一个活动线程,因此对象将始终保持其状态。不会有任何同步问题 线程安全: 在给定时间,对象上可以有多个线程处于活动状态。对象知道如何处理它们。它已正确同步访问其共享资源。它可以在这个多线程环境中保存其状态数据(即,它不会处于

线程感知和线程安全之间的区别是什么?

我认为一个执行自己的互斥锁序列化的函数是线程安全的,但可能没有线程感知。

线程感知 在任何给定时间,对象上最多可以有一个线程处于活动状态。对象知道它周围的线程,并通过将所有线程放入队列来保护自己不受线程的影响。由于在任何给定时间,对象上只能有一个活动线程,因此对象将始终保持其状态。不会有任何同步问题

线程安全: 在给定时间,对象上可以有多个线程处于活动状态。对象知道如何处理它们。它已正确同步访问其共享资源。它可以在这个多线程环境中保存其状态数据(即,它不会处于中间和/或不确定状态)。在多线程环境中使用此对象是安全的

使用既不支持线程也不支持线程安全的对象可能会导致获取不正确的随机数据和神秘的异常(因为当对象被线程使用并且在访问第二个线程时处于不稳定的中间状态时,试图访问该对象)