当前位置: 技术问答>linux和unix
几个Linux应用程序开发的问题请教LINUX程序员!
来源: 互联网 发布时间:2015-02-08
本文导语: 一直在做WINDOWS下的开发, 转到LINUX, 有一些问题请教大家: 1) Windows中的内核同步对象所能实现的功能在LINUX下如何实现? 2) 在LINUX下典型的并发的非阻塞IO模型有哪些. 是不是只有select一种方式. 3) LINUX下的进程开销...
一直在做WINDOWS下的开发, 转到LINUX, 有一些问题请教大家:
1) Windows中的内核同步对象所能实现的功能在LINUX下如何实现?
2) 在LINUX下典型的并发的非阻塞IO模型有哪些. 是不是只有select一种方式.
3) LINUX下的进程开销大不大? 一般来说正常运行时的最大进程数目可以到多少?
4) LINUX下的pthread_库的性能如何? 使用方便吗?
5) 如何保护共享资源, CriticalSection没有了...
http://expert.csdn.net/Expert/topic/1418/1418771.xml?temp=.4652216
上面的链接是我问的另外一篇LINUX开发方面的问题. 有高手请一并解答, 谢谢!
1) Windows中的内核同步对象所能实现的功能在LINUX下如何实现?
2) 在LINUX下典型的并发的非阻塞IO模型有哪些. 是不是只有select一种方式.
3) LINUX下的进程开销大不大? 一般来说正常运行时的最大进程数目可以到多少?
4) LINUX下的pthread_库的性能如何? 使用方便吗?
5) 如何保护共享资源, CriticalSection没有了...
http://expert.csdn.net/Expert/topic/1418/1418771.xml?temp=.4652216
上面的链接是我问的另外一篇LINUX开发方面的问题. 有高手请一并解答, 谢谢!
|
1) 与5)同:
先获取semphore:
semid=semget(semkey,count,flag);
然后进行P、V操作:
semop(semid,oplist,count);
2) 实事求是,不知道
3)进程开销当然很大,这在windows上也一样。Linux上每用户可拥有的最大进程数目好像是25000多,记不大清了,看一下manul,很快就知道了。
5)Linux下有两种thread--内核级thread和用户级thread,而windows下面只支持一种(内核级);pthread性能很好,很多商业软件都用它,当然,它属于用户级线程,Linux下还有一种内核级线程clone,它随参数不同而表现出不同的性能(事实上,clone与fork采用相同的系统调用入口,它既可创建线程,也可以创建进程)
先获取semphore:
semid=semget(semkey,count,flag);
然后进行P、V操作:
semop(semid,oplist,count);
2) 实事求是,不知道
3)进程开销当然很大,这在windows上也一样。Linux上每用户可拥有的最大进程数目好像是25000多,记不大清了,看一下manul,很快就知道了。
5)Linux下有两种thread--内核级thread和用户级thread,而windows下面只支持一种(内核级);pthread性能很好,很多商业软件都用它,当然,它属于用户级线程,Linux下还有一种内核级线程clone,它随参数不同而表现出不同的性能(事实上,clone与fork采用相同的系统调用入口,它既可创建线程,也可以创建进程)
|
补充
2) select,ioctl,fnctl也可以设置成那样
2) select,ioctl,fnctl也可以设置成那样
|
补充一下:
4)中的pthread库可以使用pthread_create()系统调用创建多个线程。不知道算不算~~~
4)中的pthread库可以使用pthread_create()系统调用创建多个线程。不知道算不算~~~
|
5)使用自旋锁实现内核互词对象。spinlock_t
|
man fucntion_name
man select|col -b > select.txt
man select|col -b > select.txt
|
Linux中没有API这种说法。