如何写一个多线程安全的类?
1、对于多线程安全这个概念我得理解是,不过我得程序是不是多线程,当我之用这个类的时候都不用对这个类的实例资源进行资源竞争的管理。不知我得理解是否正确。
2、我现在想写多线程安全的类,但是在我动手写这个类的时候发现了一些很矛盾的事情。问题描述如下:
当我要写一个类,而这个类会有一些可能会在多线程中产生资源竞争的资源。我可以通过互斥变量来对他们进行保护。但是我只能做到在这个类的某个函数被运行时不会有其他线程来打扰。但是当我运行完此函数,从中得到一些资源后,我本想对这个资源进行一些操作。但这时另一个线程开始执行,并删除了我得到的这个资源。这时我的当前线程又开始执行,但我之前得到的资源已经被插进来的线程给删去了。这种资源保护只能放在类库外才能控制,我的类库是不可能控制的。但如果在类库外有了这种控制,那么我类库中的控制就完全没有意义了。
那么请问这种情况应该如何处理?是不是我在写这种底层库时没有必要写成多线程安全呢?
3、像线程池、内存池、连接池这类类库我觉得都会碰到这类问题,请问这些一般是如何实现的,如果有相关的代码那更好。
期待高手的解答。