我目前有几个小于500行的小应用程序。我打算最终在一个小型的LINUX ARM box上运行它们。是合并这些应用程序并使用线程,还是继续将它们作为两个单独的应用程序?
这些应用程序和一个非常小的网站使用一个小的sqlite数据库,尽管只有一个应用程序写其他所有当前读的内容。由于目标框的限制,我使用Python2.6。
我正在使用SQLite来防止数据在使用几天后丢失。这两个应用程序之间没有直接交互,尽管存在潜在的数据库锁定问题,特别是在周期数据维护期间。阻止这些问题是一个令人担忧的问题,也是这两个应用程序的足迹,因为目标设备相当小。
使用不同的gcc优化,我的程序死于不同的操作系统信号,我想知道原因是否相同。
在使用O2编译的c++多线程程序中,由于abort(),我得到了一个核心转储。
Program terminated with signal 6, Aborted.
#0 0x00007ff2572d28a5 in raise () from /lib64/libc.so.6
我只是不能找出哪个是原因,因为它似乎是在本地std::vector析构函数中。这对我来说毫无意义。
(gdb) thread 1
[Switching to thread 1 (Thread 0x7ff248d6c700 (LWP 16767
我对所有这些细节以及它们如何在Linux中相互关联感到有点困惑。"Unix内部“一书指出,lightweight process (LWP)是内核支持的用户线程,内核看不到进程内部的线程。对于Linux,这仍然是正确的吗?
据我所知,用户空间线程被安排在进程内部,通过更高层次的抽象作为pthread库,而不需要内核的干预。我说的对吗?