我想在c'tor中初始化uniqe锁,但我没有找到方法......
class readersWriters{
private:
mutex _mu;
unique_lock<mutex> _locker;
condition_variable _condW;
condition_variable _condR;
int _readersNumber;
int _writersNumber;
std::string _fileName;
public:
readersWriters(std::string fileName);
void readLock();
void writeLock();
void readUnlock();
void writeUnlock();
std::string readLine(int lineNumber); //lineNumber - line number to read
void WriteLine(int lineNumber, std::string newLine);//lineNumber - line number to write
};
感谢您的帮助
答案 0 :(得分:0)
我不确定这是不是一个好主意,但要应用正确的语法,您需要构造函数成员初始化列表:
from selenium import webdriver
phantom = webdriver.PhantomJS()
phantom.get('index.html')
phantom.execute_script("window.alert = function(msg){ window.msg = msg; };")
phantom.find_element_by_id('button').click()
alert_text = phantom.execute_script("return window.msg;")
print(alert_text)
请注意,这会使您的整个类定义仅仅是 readersWriters(string fileName) : _mu(), _locker(_mu) {}
的代理,并且互斥锁会在整个生命周期内保持锁定。
因此,_locker
长是该类的成员,所以它没有多大意义。
如果你的类在内部使用线程,你应该在可以同时调用的函数中使用_mu
作为局部变量。