Multithreading 在多线程系统中写入汇编代码中的串行端口

Multithreading 在多线程系统中写入汇编代码中的串行端口,multithreading,assembly,serial-port,Multithreading,Assembly,Serial Port,我正在从事一个项目,该项目在多线程系统中运行一些汇编代码。每个线程都运行相同的汇编代码,在代码结束时,我希望每个线程向串行端口生成一个“finish”信号,以便我可以从另一台计算机登录。我知道如何在汇编()中写入串行端口。 但是,我不确定它在多线程系统中如何工作,因为一些线程可能会尝试同时写入串行端口。有人有这方面的经验吗?您的操作系统将不允许多个线程打开同一个串行端口。这样,您必须提供适当的错误检查和一些端口共享机制 例如,如果此时端口正忙,线程可以尝试在下次尝试打开端口之前等待一些随机时间

我正在从事一个项目,该项目在多线程系统中运行一些汇编代码。每个线程都运行相同的汇编代码,在代码结束时,我希望每个线程向串行端口生成一个“finish”信号,以便我可以从另一台计算机登录。我知道如何在汇编()中写入串行端口。
但是,我不确定它在多线程系统中如何工作,因为一些线程可能会尝试同时写入串行端口。有人有这方面的经验吗?

您的操作系统将不允许多个线程打开同一个串行端口。这样,您必须提供适当的错误检查和一些端口共享机制

例如,如果此时端口正忙,线程可以尝试在下次尝试打开端口之前等待一些随机时间


此外,在这种应用程序中,在不需要时释放端口也是必不可少的。

您可能需要使用互斥锁,以确保一次只有一个线程写入串行端口。或者,让其他线程排队等待串行端口写入请求,并且只有一个线程进行实际写入。您正在汇编程序中写入串行端口吗?串行端口速度非常慢,可以用Ruby编写驱动程序,但仍然足够快。为什么不是C或C++?哦…int 14h?这东西还有用吗?如果是的话,它是一个中断驱动程序的COS,如果不是,它就不能用多任务器来播放。不幸的是,我们只限于汇编代码,否则在C或C++中会更容易。实际上,我还没有尝试过我发布的URL中的代码(int14h),对于如何在汇编代码中生成到串行端口的输出,有谁有更好的建议吗?