我的c++程序不能创造比8 threads更多的东西。它返回错误代码EAGAIN(11)。因为缺乏可用的资源。在发布这个问题之前,我在谷歌上搜索了这个问题的解决方案,但没能从中得到多少信息。以下是我为我的程序和unix系统找到的详细信息。
我的线程创建函数是:-
thread_initialise(File *CFG_FILE)
{
int total_pthreads; //reads number of threads I want for the program from configuration file.
int rc =0 ;
fo
我有一个C++协议栈dll(用于串行通信),它向前端应用程序公开一个类。公开类如下所示:
class ProtocolStack
{
public :
void OpenRequest(Params);
void SendData(Params);
void CloseRequest(Params);
};
ProtocolStack类创建像PhysicalLayer这样的不同层,如下所示。
class PhysicalLayer
{
private:
int Baud_rate;
string PortName;
public:
void Se
我想运行一个有7个线程的进程,在linux系统中,每个线程的堆栈大小为8K (Fedora18)
在运行我的进程之前,我在终端中给出了以下命令
$ulmit -s 8 //Want to run my process and its threads each with 8K stack size
$./a.out // I started my process
在此命令系统挂起后,当我发出命令时没有response.But
$ulimit -s 16 //MY process successfully started.
当我尝试使用8K时,在设置8K之前,我已经将PTHREAD_STA