BBS水木清华站∶精华区
发信人: zpp (little), 信区: Unix
标 题: 多线程与面向对象
发信站: BBS 水木清华站 (Thu Jun 15 16:27:44 2000)
多线程与面向对象之间是不是有所约束?不用对象设计
的运行很好的多线程程序,改用对象设计却出现了意想不
到的错误。多线程函数是一个对象的方法,在运行中,对
该对象的私有变量赋值时总是总线错误,即使加了锁也不
行,这就是约束吗?
初次用多线程编程,还请多多指教。
谢谢
--
※ 来源:·BBS 水木清华站 smth.org·[FROM: 202.112.99.60]
发信人: mafie (浪人~人面桃花), 信区: Unix
标 题: Re: 多线程与面向对象
发信站: BBS 水木清华站 (Thu Jun 15 16:28:34 2000)
【 在 zpp (little) 的大作中提到: 】
∶ 多线程与面向对象之间是不是有所约束?不用对象设计
∶ 的运行很好的多线程程序,改用对象设计却出现了意想不
∶ 到的错误。多线程函数是一个对象的方法,在运行中,对
∶ 该对象的私有变量赋值时总是总线错误,即使加了锁也不
∶ 行,这就是约束吗?
∶ 初次用多线程编程,还请多多指教。
∶ 谢谢
看糊涂了,不懂
那位牛人解释一把
--
※ 来源:·BBS 水木清华站 smth.org·[FROM: coco.cic.tsingh]
发信人: zpp (little), 信区: Unix
标 题: Re: 多线程与面向对象
发信站: BBS 水木清华站 (Thu Jun 15 16:39:39 2000)
真抱歉,我说得不够清楚。
我的问题等会儿再说,只先从大的方面说。
有没有人用多线程和面向对象编过程?
比如,在一个对象A的一个方法method1中创建线程,调用的函数是
该对象的另一个方法method2,在method2中要对私有变量修改,可以
先用锁进行锁定。请问这样可以吗?
【 在 mafie (浪人~人面桃花) 的大作中提到: 】
∶ 看糊涂了,不懂
∶ 那位牛人解释一把
--
※ 来源:·BBS 水木清华站 smth.org·[FROM: 202.112.99.60]
发信人: KCN (毒中之毒~想), 信区: Unix
标 题: Re: 多线程与面向对象
发信站: BBS 水木清华站 (Thu Jun 15 17:22:00 2000)
【 在 mafie (浪人~人面桃花) 的大作中提到: 】
∶ 看糊涂了,不懂
∶ 那位牛人解释一把
对了,有没有glibc中线程安全的函数表
--
※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.10.127]
发信人: VisualC (不学VC★打倒北约), 信区: Unix
标 题: Re: 多线程与面向对象
发信站: BBS 水木清华站 (Thu Jun 15 18:12:28 2000) WWW-POST
【 在 zpp (little) 的大作中提到: 】
∶ 真抱歉,我说得不够清楚。
∶ 我的问题等会儿再说,只先从大的方面说。
∶ 有没有人用多线程和面向对象编过程?
∶ 比如,在一个对象A的一个方法method1中创建线程,调用的函数是
∶ 该对象的另一个方法method2,在method2中要对私有变量修改,可以
这个method2应该是个静态函数才行吧。。
∶ 先用锁进行锁定。请问这样可以吗?
应该说,面向对象与多线程是不冲突的,因为我曾经见过不少用C++实现
的多线程LIB,而且我的朋友也有用C++写多线程程序的,但我还是习惯
用C写。
另外你是在什么环境下写的?
--
※ 来源:·BBS 水木清华站 smth.org·[FROM: 162.105.207.199]
发信人: snag (一天到晚游泳的鱼), 信区: Unix
标 题: Re: 多线程与面向对象
发信站: BBS 水木清华站 (Thu Jun 15 19:27:55 2000)
偶一直是多线程和和面向对象的编程的热衷者
因为有的编译器不支持不同类型的函数强制转换
(例如WINDOWS下vc就不支持的说)
我一般的方法是
定义一个友元函数
由友元函数调用对象的方法
如
class CA
{
friend void *threadproc(void *)
int fthread();
int f1() { pthread_create(...this,threadproc..}
}
void *threadproc(void *p)
{
CA *pA=(CA *)p;
p->fthread();
return NULL;
}
如果同一个对象的不同线程可能同时对同一个私有变量进行赋值
就必须进行互斥
unix下有pthread_mutex,ipc的机制可能不行
windows下又mutex,critical section等
【 在 zpp (little) 的大作中提到: 】
∶ 多线程与面向对象之间是不是有所约束?不用对象设计
∶ 的运行很好的多线程程序,改用对象设计却出现了意想不
∶ 到的错误。多线程函数是一个对象的方法,在运行中,对
∶ 该对象的私有变量赋值时总是总线错误,即使加了锁也不
∶ 行,这就是约束吗?
∶ 初次用多线程编程,还请多多指教。
∶ 谢谢
--
※ 来源:·BBS 水木清华站 smth.org·[FROM: 202.112.101.249]
发信人: mafie (浪人~人面桃花), 信区: Unix
标 题: Re: 多线程与面向对象
发信站: BBS 水木清华站 (Thu Jun 15 23:36:10 2000)
【 在 KCN (毒中之毒~想) 的大作中提到: 】
∶ 对了,有没有glibc中线程安全的函数表
这个时和系统实现相关的
--
※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.173.63]
BBS水木清华站∶精华区