由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - multithread: how to lock a thread
相关主题
请教C的类型转换问题谁帮我测俩use case
请教c++ multithreading入门问题little endian vs big endian
想知道家在linux下都有什么c++ socket library问一道C++的题目。 (转载)
用STL map的时候怎么自己定义大小比较的关系C: struct 里面一个CHAR, 一个INT, 这个STRUCT 占多少字节?
python中ctypes的passing by refence问题请教有没有人在Vista下试过UDP广播
请教一下,C++如何判断未初始化的变量问个socket编程中select()的问题。
问个c++的template的问题初学C,对什么该free一直搞不明白
这两种容器定义形式有区别吗?谁来解释一下这个是compiler问题吗?
相关话题的讨论汇总
话题: data话题: priceserv话题: char话题: bool话题: thread
进入Programming版参与讨论
1 (共1页)
n********y
发帖数: 48
1
程序的基本结构如下所示,
class priceserv{
public:
priceserv(){
}
virtual ~priceserv(){
}
int run()
{
// connect to the price server
// waiting for the price events, and call the corresponding
callback function.
}
//callback function
bool on_quote(char *data)
{
//printf data
}
bool on_trade(char *data)
{
//printf data
}
bool on_depth(char *data)
{
//printf data
}
bool on_record(char *data)
{
//printf data
}
};

int main(){
priceserv tc;
if(tc.run())
{
while(1){
} //keep the program runnning
}
}
tc.run() 执行后, 开了5条thread, 分别对应main, on_quote, on_trade, on_depth,
on_record. 如果有quote, trade, depth, record事件进入, 执行对应的function.
其实就是一个client程序, 接受数据,然后把数据写入文件。
现在我想把程序改成一个server, 在接受数据的同时还可以把数据转发到别的client.
如下是我做的一些改动,
class priceserv{
public:
priceserv(){
}
virtual ~priceserv(){
}
int run()
{
// connect to the price server
// waiting for the price events, and call the corresponding
callback function.
}
bool on_quote(char *data)
{
socket_send(data);
}
bool on_trade(char *data)
{
socket_send(data);
}
bool on_depth(char *data)
{
socket_send(data);
}
bool on_record(char *data)
{
socket_send(data);
}
};


//define a structure (STRUCT_A);

void socket_send(char *text)
{
// write data into a structure A(STRUCT_A)
send(connection, STRUCT_A);
}

int main(){
test tc;
if(tc.run()){
//start the server
// listen, accpet the connection
}
}
现在的问题是4个thread可能同时访问STRUCT_A, 我应该怎么做才能在一个thread对
STRCUT_A读写时,防止别的thread对它写入呢?
p*a
发帖数: 592
2
什么平台?问都死用event,mutex。有你可死好久不用生疏了,可能是critical section或者conditional
variable,放狗查pthread

【在 n********y 的大作中提到】
: 程序的基本结构如下所示,
: class priceserv{
: public:
: priceserv(){
: }
: virtual ~priceserv(){
: }
: int run()
: {
: // connect to the price server

j******n
发帖数: 271
3
rwlock.
P********e
发帖数: 2610
4
问都司也用critical section

section或者conditional

【在 p*a 的大作中提到】
: 什么平台?问都死用event,mutex。有你可死好久不用生疏了,可能是critical section或者conditional
: variable,放狗查pthread

1 (共1页)
进入Programming版参与讨论
相关主题
谁来解释一下这个是compiler问题吗?python中ctypes的passing by refence问题请教
free(char *)的问题 (转载)请教一下,C++如何判断未初始化的变量
关于 big/little endian,为什么对char 有影响?问个c++的template的问题
大家看看这个简单的qsort排序的问题这两种容器定义形式有区别吗?
请教C的类型转换问题谁帮我测俩use case
请教c++ multithreading入门问题little endian vs big endian
想知道家在linux下都有什么c++ socket library问一道C++的题目。 (转载)
用STL map的时候怎么自己定义大小比较的关系C: struct 里面一个CHAR, 一个INT, 这个STRUCT 占多少字节?
相关话题的讨论汇总
话题: data话题: priceserv话题: char话题: bool话题: thread