【linux – IPC的共享内存和线程的共享内存有什么区别?】教程文章相关的互联网学习教程文章

Python [de]压缩模块在Linux上是否是线程安全的?在Google App Engine上?

我应该使用什么压缩 – 解压缩Python模块来构建一个系统,其中Google App Engine(Python 2.7)与Linux机器上的应用程序交换压缩数据? 还有两个额外的限制: > Linux机器和GAE都将进行压缩/解压缩,并且需要安全地操作线程;>我想在不使用类似文件的对象的情况下完成所有操作,因为App Engine无法为动态文件提供传统的Python文件名. 我问,因为从文档中不清楚某些[de]压缩模块是否是线程安全的. 任何人都可以帮忙填写压缩模块表吗? > bz...

linux下进程的最大线程数、进程最大数、进程打开的文件数【代码】

===========最大线程数============== linux 系统中单个进程的最大线程数有其最大的限制 PTHREAD_THREADS_MAX 这个限制可以在 /usr/include/bits/local_lim.h 中查看 对 linuxthreads 这个值一般是 1024,对于 nptl 则没有硬性的限制,仅仅受限于系统的资源 这个系统的资源主要就是线程的 stack 所占用的内存,用 ulimit -s 可以查看默认的线程栈大小,一般情况下,这个值是 8M 可以写一段简单的代码验证...

linux 线程通信

1 msgget(key,IPC_CREAT | 0660); 返回0是正常的,msgid就是0,没事 2 msgsnd(Iec101MsgId,&buf,256,0); msgsnd的时候,buf.type 一定要大于0!!不然会发送失败 3 msgrcv(Iec101MsgId,&buf1,256,1,IPC_NOWAIT); msgrcv,返回的是接收到的长度,而不是1之类的东西

Linux中的进程和线程如何相同?

我已经读过Linux中的进程和线程是一回事,例如在question中它说:There is absolutely no difference between a thread and a process onLinux.但是我不明白进程和线程如何能够表达同样的东西.我的意思是一个线程是由CPU执行的,而一个进程只是线程的“机箱”,它允许线程拥有共享内存.此图显示了进程与其线程之间的关系:很明显,一个过程和一个线程并不意味着同样的事情!解决方法:Linux没有使用对(POSIX)线程的特殊支持,它只是将它们...

目前在Linux中进行线程编程的正确方法

我知道Linux内核和libc中的线程实现过去经历了很大的变化.今天在C程序中使用线程的最佳方法是什么? (我甚至不知道是否有多个API可以使用 – 我只知道pthreads) 我不太关心旧内核和libc版本,但我确实关心有效使用多个内核和可移植性(我可能希望我的代码也可以在其他Unix上运行). 如果我只使用man 7 pthreads中描述的Posix线程并将我的代码限制在POSIX API就可以了吗? 编辑:感谢所有回答的人.我确实想过使用一些可用的线程池库,但...

linux – 使用qsub(sge)和多线程应用程序【代码】

我想向我正在使用的集群网络提交一个多线程作业 – 但关于qsub的手册页不清楚这是怎么做的 – 默认情况下我猜它只是将它作为普通作业发送而不管多线程 – 但这可能会导致问题,即将多个多线程作业发送到同一台计算机,放慢速度. 有谁知道如何做到这一点?谢谢. 批处理服务器系统是sge.解决方法:在SGE / UGE中,配置由管理员设置,因此您必须检查他们称之为并行环境的内容qconf -spl make our_paraq在配置中查找带有$pe_slots的一个qco...

Linux上的C语言中的POSIX线程和全局变量

如果我有两个线程和一个全局变量(一个线程不断循环读取变量;另一个不断循环写入它)会发生什么事情不应该? (例如:例外,错误).如果它,是什么方法来防止这种情况.我正在阅读有关互斥锁的内容,并且它们允许对一个线程的变量进行独占访问.这是否意味着只有那个线程可以读写它而不能读取其他内容?解决方法:Would anything happen that shouldn’t?它部分取决于变量的类型.如果变量是一个字符串(长字符数组),那么如果编写者和读者同时访...

linux – 使用ps作为线程【代码】

我想检查进程线程对进程的RSS,VSZ和SZ值的贡献.我怎样才能做到这一点.因为如果我这样做:ps w -eL -o pid,tid,%cpu,cputime,%mem,sz,rss,vsz,command我得到了tid,但进程的所有线程的所有其他值都是相同的.我甚至可以用ps做到这一点吗?解决方法:线程对驻留和虚拟大小没有单独的贡献,因为它们根据定义共享内存.至于恰好由单个线程使用并且从不与其他线程共享的区域,内核不知道这一点.这就是ps为进程中的所有线程显示相同值的原因.

Linux中进程/线程的大小

Linux中进程/线程的大小是多少?创建进程/线程时,还有task_struct和其中的其他数据结构,还有什么吗? 进程/线程初始化(固定大小)时是否分配了进程/线程的堆栈?或者在必要时分配(如虚拟内存)? 在内存中创建标准进程/线程时,如何知道它的大小?解决方法:当在Linux上首次分配大块内存(> pagesize = 4096字节)时,它在页面表中使用了特殊的“空”内存页面,这些内存页面没有任何后盾,因此当一个线程启动时,它将分配~1 MB这些零页面的线...

Linux:如何找到持有特定锁的线程?

我有一个在Linux上运行的多线程程序,有时如果我对它运行gstack,有一个线程正在等待锁定很长时间(比如2-3分钟),Thread 2 (Thread 0x5e502b90 (LWP 19853)): 0 0x40000410 in __kernel_vsyscall () 1 0x400157b9 in __lll_lock_wait () from /lib/i686/nosegneg/libpthread.so.0 2 0x40010e1d in _L_lock_981 () from /lib/i686/nosegneg/libpthread.so.0 3 0x40010d3b in pthread_mutex_lock () from /lib/i686/nosegneg/libpth...

linux – 有没有办法在Glib v2.32中设置线程优先级?

Glib 2.30 API允许通过GThreadPriority枚举设置线程优先级.但是,该API是deprecated as of 2.32,我找不到任何有关使用新API设置线程优先级的信息.我已经通过API refrence中所有与线程相关的部分按Ctrl键找到了与优先级无关的部分.谷歌似乎也不知道任何事情. 那么在2.32 API中为可能的线程分配优先级呢?如果是,如何在创建时执行此操作,是否可以在创建线程后更改它?我知道pthread支持所有这些,但我更喜欢坚持与平台无关的Glib API.解...

c – 访问本地堆栈的linux线程(pthreads)【代码】

我目前正在实现一个使用多线程的应用程序,但对总内存消耗有要求.我想要一个主线程做I / O和几个工作进行计算. 目前,我在工作人员访问的主堆栈上有几个数据结构.我使用OpenMP进行工作分发.由于主/工作模式不能很好地与OpenMP一起工作,我想使用pthreads进行多线程处理. 我知道每个线程都维护一个本地堆栈,但是在创建线程时堆栈究竟会发生什么? 工作人员是否可以访问主堆栈上的数据结构,还是应该将它们移动到堆中?我还想避免重复数据...

当在另一个线程上更改pollfd时,Linux和OS X之间poll()的差异【代码】

我试图在OS X上的多线程环境中运行libwebsockets.我无法触发从主服务线程以外的其他线程发送数据.在libwebsocket docs上暗示这应该是可能的(demo code,mailinglist).所以我挖掘代码并在poll()函数中发现了问题. 似乎poll()在作为参数给出的struct pollfd方面表现不同.当poll()处于活动状态时,libwebsockets依赖于更改fds.event字段的可能性.这在Linux上工作正常,但不适用于OS X. 我写了一个小测试程序来演示行为:#include <unistd...

页面错误是否会导致Linux上的线程上下文切换?

如果一个线程在尝试从一个地址读取时遇到重大故障,并且必须从“磁盘”交换数据,Linux是否会利用它来运行另一个等待线程(如果有的话)? 从我在网上看到的,答案是肯定的.但我没有看到任何结论.解决方法:这取决于您使用的调度程序.一般来说,答案是肯定的,除非磁盘操作足够快或除非内核有另一个原因不在另一个进程中交换.

如何在linux中的openmpi中启用多线程标志?【代码】

我尝试在openmpi中使用MPI_THREAD_MULTIPLE选项.为了实现这一点,我发现我需要在openmpi配置中启用多线程选项.我不知道怎么做?有人可以帮助我.提前谢谢.我检查了系统中的openmpi设置.线程的设置如下:Thread support: posix (MPI_THREAD_MULTIPLE: no, OPAL support: yes, OMPI progress: no, ORTE progress: yes, Event lib: yes) FT Checkpoint support: no (checkpoint thread: no)如何启用MPI_THREAD_MULTIPLE标志?解决方法:在...