y***d 发帖数: 2330 | 1 what is the question of the ultima answer?
the |
|
z****e 发帖数: 2024 | 2 不好意思,题没贴全,补上了,就是按照那几个函数call的顺序call。 |
|
t****t 发帖数: 6806 | 3 because you have to communicate in order to synchronize? |
|
g**e 发帖数: 6127 | 4 好虫说说看CyclicBarrier这里怎么用的?没想明白。CyclicBarrier参数至少是2吧,
怎么保证两个线程交替打印?
这里用semaphore不是简单点 |
|
g*********s 发帖数: 1782 | 5 learning read/write locker and find the following on line:
http://doc.qt.nokia.com/qq/qq11-mutex.html
i just don't get it. how does it works? it seems to me lockWrite() just
directly set the semaphore to its max value. how are multiple writes
prevented? |
|
g*********s 发帖数: 1782 | 6 can any da niu share ideas of implementing class semaphore and class
rwlock using pthread mutex only? |
|
p*****y 发帖数: 1049 | 7 1,线程之间怎么通讯?什么是critical section/semaphore/mutax,区别?
2, process和thread的区别?
这些问题属于什么问题?应该在什么书里面论述?能推荐一本吗?谢谢! |
|
d*****l 发帖数: 8441 | 8 一直听着呢,而且我也发邮件问了微软的人了(B***********[email protected]),
他给我的回信中建议的solution跟我自己的土办法(用共享文件实现semaphore)是一
样的,所见略同。
Hi XX,
Unfortunately there is no simple way to do this.
The best option I can think of is to have your program in the virtual
machine create a file on a shared folder of the host OS when it
completes.
You could then have a batch file check for the presence of that file.
It would be tricky to do – but should work.
Cheers,
Ben
此外,我说ping不通只是给楼上的一个例子,说明他的solution不容易,并不是我要问问题。
想你说的要设置网络就更复杂了,没必... 阅读全帖 |
|
A**u 发帖数: 2458 | 9 照书编了一个,
结果总是不对,请大牛看看问题出在哪里呢
#include
#include
#include
pthread_mutex_t region_mutex = PTHREAD_MUTEX_INITIALIZER;
sem_t items;
int b; /* buffer size = 1; */
void add_buffer(int i){
b = i;
}
int get_buffer(){
return b ;
}
void *producer(void*)
{
int i = 0;
std::cout <<"I'm a producer" << std::endl;
while (1) {
pthread_mutex_lock(®ion_mutex);
add_buffer(i);
pthread_mutex_unlock(®ion_mutex);
sem_post(&ite... 阅读全帖 |
|
A**u 发帖数: 2458 | 10 我又测试了下面的例子
#include
#include
#include
#include
#include
using std::cout;
using std::endl;
sem_t sem;
void* fun(void*){
while( true ){
sem_wait(&sem);
cout << "Hello " << endl;
}
return 0;
}
int main(){
pthread_t ID;
int res = sem_init(&sem,1,0);
if (res == -1)
{
cout << "sem failed" << endl;
cout << errno << endl;
return 0;
}
pthread_create(&ID... 阅读全帖 |
|
t****t 发帖数: 6806 | 11 你什么系统, 不带semaphore的? 20年前的DOS吗? |
|
A**u 发帖数: 2458 | 12 mac下没有lrt
我用rt代替,
还是一样, semaphore初始化出错 |
|
x**n 发帖数: 1055 | 13 的确是传的指针,但是没有用semaphore, boost thread好像没有这个东西吧
是这样的,假设有msvc.dll和mingw.dll
又用VC8.0写了个主程序
typedef struct
{
boost::barrier* brr;
boost::mutex* mtx;
boost::condition* cv;
} BT_PARAM;
main()
{
...
BT_PARAM* bt_param;
bt_param=new BT_PARAM;
接下来初始化bt_param;
接下来loadlibrary,打开msvc.dll和mingw.dll
产生两个线程
boost::thread* t_msvc=new boost::thread(p_msvc,bt_param);
boost::thread* t_mingw=new boost::thread(p_mingw,bt_param);
...
}
然后在msvc.dll.cpp中加上这么一段:
...
bt_param->brr->wait();
...
同样在在mingw.dll.cpp中加上这么一段:
..... 阅读全帖 |
|
|
g***l 发帖数: 2753 | 15 新的c++11加了thread,是不是要再把boost里面的mutex, cv,semaphore什么的都借过来
?然后再添个atomic operation什么的就齐活了。 |
|
c*****a 发帖数: 808 | 16 i've done similar classic stuff with semaphore mutex or pipe. i am trying
to figure out how to do this with user defined signal handler. |
|
h**********c 发帖数: 4120 | 17 Let's say multi-thread. In java, LinkedConcurrentQueue can be very fast.
While you use C++. Otherwise, you can spend sometime study the source code
of log4j. It is regretful log4j is for java.
So I mentor you an architecture. For each thread you declare a local storage
, say a c++ hashmap , may not be exactly accurate. Most c++
thread can be joined. Before you join them, you can check a boolean
variable (or use semaphores), advanced Unix programming has similar example.
You don'... 阅读全帖 |
|
p***o 发帖数: 1252 | 18 Put a memory barrier before pthread_create, or if you don't know
how to do so, you can wait on a semaphore in your thread function
while post it at the end of the constructor. |
|
b***i 发帖数: 3043 | 19 最新进展,这个不是CF本身问题,是嵌入式软件问题。
发现的问题:文件内容被覆盖到文件目录去,该文件的目录项(以及附近同一个扇区的
所有目录项)消失,从而,api不能继续写入文件。
原来的嵌入式软件执行一个无限循环,里面做所有的事情。后来用了第三方的TCP/IP的
软件,估计使用了一些函数指针把CF的api记录了。这样我觉得可能ftp的时候,第三方
的软件直接呼叫了CF API,这些api都是不可重入的,里面有全局变量,比如纪录当前
正在写哪个缓冲区。这个绝对可以造成同一个内容被写入不同区域。我看这个探测CF里
面重复区域的任务不用做了,下面的任务就是确定这个原因,然后需要手写semaphore
级别的东西,因为原来没有使用操作系统,无法实现这些功能。 |
|
b***i 发帖数: 3043 | 20 近代技术可以用uC/OS,然后用例子里的web server就可以了。仍然要直接控制外设,
但是要semaphore/mutex什么的保护。这样比裸写好多了。
我最近搞到一个系统,可以发出噪音,主频100MHz,有网络口。非常满意。只是代码只
能写32k以内。 |
|
c******o 发帖数: 1277 | 21 Just like normal people can much easier understand
how multiple parallel immutable transformation can compose with each other
than a completely mess of lock/semaphore/mutex.
like, |
|
h**o 发帖数: 548 | 22 wiki 里 writers-preference 的实现是这样的: 请问mutex_3是干嘛用的?
http://en.wikipedia.org/wiki/Readers%E2%80%93writers_problem
int readcount, writecount; (initial value = 0)
semaphore mutex_1, mutex_2, mutex_3, w, r ; (initial value = 1)
READER
P(mutex_3);
P(r);
P(mutex_1);
readcount := readcount + 1;
if readcount = 1 then P(w);
V(mutex_1);
V(r);
V(mutex_3);
reading is performed
P(mutex_1);
readcount := readcount - 1;
if readcount = 0 then V(w);
V(mutex_1);... 阅读全帖 |
|
t**********1 发帖数: 550 | 23 第一,从来都不是一台单机打天下。
第二,Interlocked不是semaphore。真的不是。 |
|
|
c****3 发帖数: 10787 | 25 很多C++的程序员,号称写多线程网络程序的,很多都不会写atoi,分不清mutex和
semaphore的区别,不会用BSD socket,不会分析core dump文件。
他们都是在framework上工作的,framework有人写好,所以一到深入的找问题,就抓瞎了 |
|
T********i 发帖数: 2416 | 26 没用,这个是linux的问题。你看看sem_timedwait就知道了。
正确的做法是重做一个semaphore。 |
|
e********3 发帖数: 18578 | 27 类似,Java只有single count semaphore,就是synchronized。
mutex |
|
g*********e 发帖数: 14401 | 28 建议你找本书好好看看啥叫mutex semaphore |
|
s********k 发帖数: 6180 | 29 最重要有一个区别,mutex只能锁住的thread释放,semaphore没有这个限制,thread
1signal,thread 2 wait完全可以 |
|
H****S 发帖数: 1359 | 30 Semaphore是non-reentrant的,参考以下代码:
def foo() {
println("smile")
super.foo()
}
一个binary semaphoreh会出现死锁。 |
|
c******n 发帖数: 4965 | 31 【 以下文字转载自 JobHunting 讨论区 】
发信人: creation (努力自由泳50m/45sec !), 信区: JobHunting
标 题: Re: java producer consumer problem
发信站: BBS 未名空间站 (Tue May 12 03:10:47 2015, 美东)
ok,..... 自己写了一下,那个路子的不是很有把握, 另外又照wiki 上的semaphore
version 写了,加基本version, 共三种
http://pastebin.com/uSYXpGKJ
欢迎大家讨论,找毛病 |
|
g*********e 发帖数: 14401 | 32 youneed to use ipc technics like shared memory and socket
Synchronization can be done with semaphore |
|
b***i 发帖数: 3043 | 33 多线程也行啊,用semaphore控制
从LabView那里读和返回
run(){
do{
request = s_Transport.readRequest();// 截获原包
relayed_request= modify(request); // 修改
sema.release() // 让另外一个线程行动
semb.acquire(); //要么接受到了,要末超时了
response = modify(relayed_response); // 修改
s_Transport.writeMessage(response) // 返回给LabView
} while(true);
}
向设备发送和接收
run()){
do{
sema.acquire();
c_Transport.writeMessage(relayed_request); // 转发
try{
relayed_response = c_Transport.readResponse(); // 读设备... 阅读全帖 |
|
h**********c 发帖数: 4120 | 34 不是不对,是对同步得理解,同步没有semaphore或其他synchronization 机制会
starvation
说到这里,你对slicing得理解是怎样的,在什么样的情况下,你认为你应该研究一下
slicing? |
|
M********t 发帖数: 5032 | 35 你这个关于volatile的说法是对的,volatile is just a hint to compiler。
另外,busy wait一般不是个好idea。可以考虑其他primitive。例如semaphore唤醒干
活,干完检查flag。 |
|
w********m 发帖数: 1137 | 36 不知道你怎么实现的,不好说。
每个client对应的是server上的一个channel。
如果reset太快,把channel改成buffered的channel可能好点。
有时候是资源耗尽了,disk IO,network IO,memory,etc
这时候要加semaphore控制并发。
你可以把The Go Programming Language 里面的chatroom编译一遍,看看能有多少并发。 |
|
|
d*******n 发帖数: 109 | 38 还可以用semaphore multi reader writers 时挺好用 |
|
b***i 发帖数: 3043 | 39 对,CriticalSection里面使用一些古老的Win32API来调用外部的exe文件。
当然,我认为可以使用mutex/semaphore实现。不过我觉得我们的方案有问题,不是真
正的一次初始化。有可能多次,因为多个核心的CPU看到这个static变量都是false
而且,以前也讨论过,即使加上volatile也不行 |
|
z****g 发帖数: 5 | 40 Consider this case,
....;
....;
p(semaphore);//Entering waiting state
How can I make sure the last line is executed immediately after preceding
lines?
Sometimes, OS will preempt the program just before the p(..) is executed and
resume the program later. This may cause bad race condition.
I appreciate any clues for solving this problem. Thanks a lot. |
|
l*****g 发帖数: 547 | 41 I tried examples from richard stevens' book, no problem.
uses |
|
m****4 发帖数: 11 | 42 偶然机会,这周五和Marvell电面小聊一番。。
是做存贮设备的固件工程师,小激动,小弟是小硕士在读。。蛮感兴趣linux/driver一
类的
期间共断线4次+,非常不好意思 (⊙_⊙)
问了几个简单的OS(interrupt,memory leakage handler, lock,semaphore,mutex...)
和算法(balanced BST, Hashtable...)
过了一个小时,收到邮件叫我去onsite了。。小意外
分享外加求教下onsite的经验
谢谢 |
|
S******2 发帖数: 7 | 43 刚面试完embedded software engineer,贡献一个面经,顺便求祝福,local
small company, 不过是my Dream Company
1. Why declare/define volatile variables
2. reverse a linked list.
3. socket/Tcp/ip APIs: difference between sendto and send functions.
4. implement the atoi function.
5. bootloader and bootstraper, differences?
6. the first user process spawned in an embedded linux? and its functions?
7. Mutex and Semaphore, differences? how to use them to avoid race
conditions?
本地公司,面了大约2个小时,大概就些,还有一些linked list, BSTcoding什么
的... 阅读全帖 |
|
发帖数: 1 | 44 LZ今年五月份毕业,想找一份embedded/firmware工作,现在人在湾区,倾向于湾区和
San Diego的职位,干过两端实习,比较擅长Automotive (CAN, CANOpen, J1939)和 蓝
牙4.0,会uc/COS III RTOS和一点linux kernel/device driver。实在想求一下帮助
,简历贴上来, 请教些如何修改简历,或者内推, 多谢版内各位了!!
Programming Languages and Framework
•Labview, C, C++, C#, Java, Python, Shell scripting, Matlab, ARM
assembly
Knowledge and Skills
•Protocol: SPI, UART, I2C,TCP/IP, CAN, CANOpen, J1939 .
•Processor/Platform: Microchip PIC, ARM(Cortex-M), AVR, Arduino,
Rasberry Pi.
•OS: Lin... 阅读全帖 |
|
h**********c 发帖数: 4120 | 45 尽管没太理解您的目的,但没看到monitor,semaphore 之类的关键字,
所以最好从一个现成的例题入手,每次只做很小改动较好,
另外您用的是什么语言? |
|
b****h 发帖数: 2105 | 46 我去,不用lock,synchronized,还有啥?semaphore? |
|
f*******d 发帖数: 339 | 47 I don't know much biology, but I think it would be very
surprising if the development is mainly determined by
such randomness as the direction of impending sperm.
The idea of marks (in computer science lingo, that would be
called a lock or semaphore) on gene sounds good, is this confirmed or
just a conjecture? How do they mark the gene? |
|
m*********k 发帖数: 10521 | 48 "[Seattle]Gerdo Apr 24. ● 【BSSD】发88个"
成功奖励 10 伪币的用户: wai, emeraldlake, xixixihahaha, graceWA, guiyang,
Ispy, Vestforever1, sonofagun, home2013, turningpoint, dmqpw, avayagrape,
unkown11, Roethlisberg, watercube, thua, gWTW, Skagway, fiu, renaissance,
sky, homeforyou, diameter, qianqian, monkeyface, sfz, ultracalm, alan269,
bluesky42, majiachen, ChinaApple, ltp000, JQLuLu, MindSpeed, Sanyeca,
uncommonsue, mttbbs, Mmj, lovebean0316, monthly, waterww, sanlylnas, misty,
zucca, cocoon8892, yuw... 阅读全帖 |
|