Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

Linux下创建1000个线程

Linux下创建1000个线程

要创建1000个线程,可以先执行ulimit -s 2048。这个问题要用程序的方法解决几乎是不可能的。因为按RedHat Linux 9.0的posix线程实现,每个线程的父进程都是当前控制台进程,而不是调用pthread_create的那个进程的。而另一方面,在一个进程中能创建的线程个数又主要受堆栈的限制:2G/允许的最大堆栈大小,在i386平台上,控制台进程默认的最大堆栈大小为8M,所以能创建的线程数为2G/8M = 256个。但是,这个8M的限制可...
Linux系统驱动编译及运行

Linux系统驱动编译及运行

一、手工加载测试1、insmod ./key_test.ko 加载驱动模块到内核2、cat /proc/modules |grep key_test 查看key_test模块在内核中的地址,不加过滤器可以看到全部加载的模块。3、lsmod 显示模块,这时可以看到所有的模块名字,后面跟的是主设备号和次设备号。4、rmmod key_test 把模块从内核里卸载。二、动态加载1、把key_test.c源代码放到内核源代码的/drives/char/下,因为这是...
Linux系统下malloc/free与new/delete的区别

Linux系统下malloc/free与new/delete的区别

由于malloc/free是库函数,不是运算符,他们不能执行构造函数和析构函数,只是负责分配内存。1、malloc与free是C /C语言的标准库函数,new/delete是C 的运算符。它们都可用于申请动态内存和释放内存。2、对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行...
Java开发中关于Hibernate对多表关联查询

Java开发中关于Hibernate对多表关联查询

由于公司项目的需要,我对Hibernate对多表关联查询研究了一下,现总结如下,供朋友参考。一、 Hibernate简介Hibernate是一个JDO工具。它的工作原理是通过文件(一般有两种:xml文件和properties文件)把值对象和数据库表之间建立起一个映射关系。这样,我们只需要通过操作这些值对象和Hibernate提供的一些基本类,就可以达到使用数据库的目的。例如,使用Hibernate的查询,可以直接返回包含某个值对象的列表(List),而不必...
Linux VI编辑器中的复制与粘贴

Linux VI编辑器中的复制与粘贴

Linux服务器管理最头疼的就是配置文件的配置。一般情况下配置文件都给出了示例,我们在修改配置文件的时候,最好保留好示例现场。将示例部分复制一份,然后再修改。这样的话,即使修改错误,通过对比示例可以及时发现错误所在。那么vi编辑器中的整行(多行)复制与粘贴就非常必要了。1、复制1)单行复制在命令模式下,将光标移动到将要复制的行处,按“yy”进行复制;2)多行复制在命令模式下,将光标移动到将要复制的首行处,按“nyy”复制n行;其中n为1、2、3...2、粘...
Linux内存之内存管理的实质

Linux内存之内存管理的实质

1. 内核初始化:Linux内核建立好内核页目录页表数据库,假设物理内存大小为len,则建立了[3G--3G+len]::[0--len]这样的虚地址vaddr和物理地址paddr的线性对应关系;内核建立一个page数组,page数组和物理页面系列完全是线性对应,page用来管理该物理页面状态,每个物理页面的虚地址保存在page->virtual中;内核建立好一个free_list,将没有使用的物理页面对应的page放入其中,已经使用的就不用放入了;...
Linux应用之突破多平台开发障碍Qt 4.4发布

Linux应用之突破多平台开发障碍Qt 4.4发布

奇趣科技近日发布了其旗舰产品Qt4.4。该新版本使开发人员首次能够将Web功能集成到本地桌面和移动设备应用中去。此外,该版本Qt 4.4还更具开扩意义的实现了,Windows、Macintosh和Linux操作系统以及移动设备之间跨平台的实现。它为创建跨越各种桌面系统和设备的应用及服务提供了一个通用框架。Qt 4.4更是将这些应用延伸至运行Windows Embedded CE操作系统的移动设备中去。Windows Embedded CE是一款运行在各类移...
Linux 内核学习感想

Linux 内核学习感想

说实话,学习Linux内核是一件极其艰难的事,是一件需要毅力的事情。可是有毅力的人不一定能真正的去理解Linux内核。个人感觉学习Linux内核首先需要对操作系统的实现具有浓厚的兴趣,其次要找到一个好的切入点,最后要有一定的理论基础。 上面提到的:兴趣,切入点,以及理论基础都是必要的。 理论基础是说你需要了解操作系统的基本概念,什么是操作系统,操作系统中的内存管理与进程管理(个人认为这是操作系统中的难点)是如何进行的,另外还要明白什么是中断,什么是系统...
将clock_t转化为秒值在Windows与Linux平台下的差异

将clock_t转化为秒值在Windows与Linux平台下的差异

平时写测试程序的时候常常要计算程序执行的时间,尤其是最近练习Intel多核编程时,需要判断打开openmp参数与否的执行时间的比较。通常代码是这样写的:#include clock_t start, stop;....start = clock();do_something();stop = clock();printf("%f", (double)(stop-start)/1000.0) ;..... 或者是求当前时间的秒值:double t = (do...
Linux C中也有“ThreadLocal”

Linux C中也有“ThreadLocal”

现在在看Linux开发的书,接触到了多线程开发这一块,惊奇的发现用C写多线程程序,也有线程内部变量的概念呢,甚至调用的接口和Java中的ThreadLocal非常像。1.extern int pthread_key_create ((pthread_key_t *__key, void (*__destr_function) (void *)));先使用该方法创建一个线程内的Key,且绑定一个函数在线程结束时回收Key对于的空间2.extern int p...
Linux 系统学习之shell脚本学习

Linux 系统学习之shell脚本学习

1、:(冒号的妙用): ${username=`whoami`} #当作占位符: ${HOSTNAME?} ${USER?} ${MAIL?} #评估参数是否设置: > data.xxx #文件"data.xxx"现在被清空了,这个和 cat /dev/null > data.xxx的作用是一样的,但是不会产生新进程,因为冒号:是一个内建命令。2、 ** 是幂运算3、$? 退出状态变量.$?保存一个命令/一个函数或者脚本本身的退出状态。$$ 进...
Ubuntu下使用substance美化JAVA界面

Ubuntu下使用substance美化JAVA界面

在Ubuntu下制作JAVA桌面的时候为了让界面更美观一点,我一直在Windows下使用substance包,但是在Linux下使用时却发现界面中所有字符都成了乱码,从同学那么找到了解决办法,跟大家分离一下。 首先写使用substance外观的代码,然后在要使窗体显示的代码之前调用一个方法private static void InitGlobalFont(Font font) {FontUIResource fontRes=new FontUIResou...
Linux多线程socket编程一些心得

Linux多线程socket编程一些心得

前段时间将新的web模型办到Linux上来,用epoll代替了IOCP,经测试确实性能提高了很多,吞吐量也寓所提高,对于Linux下面的网络编程不是三言两语就能说得透的了,加上多线程就更麻烦了,但是epoll模型的精髓就是事件驱动,这种模型提供了保持连接socket直线增涨而性能不会直线下降的特性,纵观epoll kueuen select等等,所有都是在解决一个socket不需要一个线程的问题,将事件去分开来。 在ningx(有人用他同时保持了3万个处...
Linux进入临界去开关中断的几种方式

Linux进入临界去开关中断的几种方式

进入中断时候关闭全局的中断是为了避免程序处理中断过程中,再进入另一个中断打乱执行的顺序,也就是为了防止中断嵌套的情况发生。比如在irq_handler函数中首先就应该关闭中断。或者,在某些操作顺序中是不允许中断发生打断的情况。例如在驱动中常用的方式: unsigned int flag; local_irq_save(&flag); ... ... ... ... local_irq_restore(&flag); spin_lo...
<< 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 >>