【发布时间】:2014-02-20 08:52:08
【问题描述】:
我不确定是否有人使用 Borland c++ 3.1,但我必须这样做。
我有一个程序,它实现简单的线程并通过定时器中断改变这些线程的上下文。
我有一个无限循环和 2 个线程,它们可以完成它们的工作并在彼此和主线程之间切换。他们的工作是产生一些输出,在控制台上写一些东西。 问题是每次我运行程序时,都会发生不同的事情。
有时它会工作半分钟,然后就停止写它应该写的东西。写只是停止并且没有错误并且borland不会崩溃。 有时它会停止并且 borland 在没有消息的情况下崩溃。 有时它会停止并且 borland 崩溃并显示“非法指令”消息 有时在它停止之前写的最后一行是一些不应该在输出中的奇怪字符。
是不是控制台“满了”而 borland 的行为很奇怪? 可能是什么问题?
【问题讨论】:
-
Borland c++ 3.1 1992年发布...有的SO用户还没出生,为什么还要用这么老的编译器?
-
您所描述的表明代码不是线程安全的。但是没有看到任何崩溃的代码,我只能猜测它有什么问题。 en.wikipedia.org/wiki/Thread_safety
-
如果我错了,请原谅我,但你是在拖钓吗?
-
@JesseGood 因为老师是这么说的?因为您无法在 Windows/Linux/MacOS 上使用更好的编译器轻松完成相同类型的低级操作,但在裸机或模拟器上的 DOS 上仍然可以?
-
因为我必须制作带有信号量和事件的小型 16 位多线程操作系统,并且由于某种原因我们必须使用 bcc 编译器,所以为此编写了老师的测试,我猜他没有时间改变该项目的概念并使其更高级:) 我不是拖钓
标签: c++ crash borland-c++