Linux 编程
martin_liang
这个作者很懒,什么都没留下…
展开
-
线程安全队列的实现 Linux version
#include #include static pthread_mutex_t mutexLock;static pthread_cond_t condNotFull;static pthread_cond_t condNotEmpty;static int queueSize = 0;static int curQueSize = 0;static int curFr原创 2012-05-24 05:06:34 · 973 阅读 · 0 评论 -
多个线程如何操作同一个epoll fd
转自:http://blog.csdn.net/menggucaoyuan/article/details/38959725自己以前做一个接口服务器时候,这种场景下我的设计是多个线程操作同一个epoll fd。彼时,我的理由是epoll的系列函数是线程安全的。 当然有人不理解为什么会有多个线程操作同一个epoll fd的情形,这里稍微铺陈一下接口服务器的场景。epo转载 2015-03-15 21:36:02 · 726 阅读 · 0 评论 -
JAVA使用EPoll来进行NIO处理的方法(转)
转自:http://lelong.iteye.com/blog/1265731JDK 6.0 以及JDK 5.0 update 9 的 nio支持epoll (仅限 Linux 系统 ),对并发idle connection会有大幅度的性能提升,这就是很多网络服务器应用程序需要的。启用的方法如下:-Djava.nio.channels.spi.SelectorPro转载 2015-03-15 17:45:58 · 2632 阅读 · 1 评论 -
Java NIO 选择器(Selector)的内部实现(poll epoll)
这是一篇解惑博客,之前面试Intel的时候有个面试官问有关NIO的问题,他还坚持NIO底层就是用select实现的那时我就纳闷,既然EPOLL比select好,为什么Java还要用select这种性能差的selector,而且那时面试官还坚持NIO可以select多于1024个通道,这怎么可能,这篇博客解决了我的困惑转自:http://blog.csdn.net/hsuxu/art转载 2015-03-15 17:37:24 · 1314 阅读 · 2 评论 -
JAVA NIO 选择器
转自:http://blog.csdn.net/aesop_wubo/article/details/9117655为什么要使用选择器通道处于就绪状态后,就可以在缓冲区之间传送数据。可以采用非阻塞模式来检查通道是否就绪,但非阻塞模式还会做别的任务,当有多个通道同时存在时,很难将检查通道是否就绪与其他任务剥离开来,或者说是这样做很复杂,即使完成了这样的功能,但每检查一次通转载 2015-03-15 17:40:01 · 562 阅读 · 0 评论 -
有必要澄清一下究竟TLS(or java's thread local)的作用是什么
转自:http://www.oschina.net/question/735298_101939OSCHINA上看到了好几篇帖子在介绍Java的ThreadLocal类,但是,说到该类的作用是,竟然一致的都和线程的同步/互斥扯上关系,将其划作与Synchronized功能一样的,用来解决多线程间并发访问共享资源的一种方式。 觉得实在有必要澄清一下,下面汇总了我回的一些内容,作为转载 2015-03-14 00:50:56 · 1167 阅读 · 1 评论 -
一个学习Linux 编程命令的好网站
http://linuxtools-rst.readthedocs.org/zh_CN/latest/index.html转载 2015-04-27 22:52:12 · 447 阅读 · 0 评论 -
Linux Core Dump
转自:http://www.embeddedlinux.org.cn/html/jishuzixun/201307/08-2594.html一、前言: 有的程序可以通过编译, 但在运行时会出现Segment fault(段错误). 这通常都是指针错误引起的. 但这不像编译错误一样会提示到文件某一行, 而是没有任何信息, 使得我们的调试变得困难起来. gd转载 2015-04-27 21:58:21 · 367 阅读 · 0 评论 -
ldd 查看程序依赖库
转自:http://linuxtools-rst.readthedocs.org/zh_CN/latest/tool/ldd.htmlldd作用:用来查看程式运行所需的共享库,常用来解决程式因缺少某个库文件而不能运行的一些问题。示例:查看test程序运行所依赖的库:/opt/app/todeav1/test$ldd testlibstdc++.so.6转载 2015-04-27 22:03:34 · 2144 阅读 · 0 评论 -
Linux的 test 命令使用
1.关于某个文件名的『类型』侦测(存在与否),如 test -e filename -e 该『文件名』是否存在?(常用) -f 该『文件名』是否为文件(file)?(常用) -d 该『文件名』是否为目录(directory)?(常用) -b 该『文件名』是否为一个 block device 装置? -c 该『文件名』是否为一个 character dev转载 2015-08-16 10:07:47 · 396 阅读 · 0 评论 -
Linux touch 命令 - 为什么我们需要改变时间戳?
我们可能在 Linux 下运用 touch 命令创建一个空文件。当然我们也可以使用其他命令例如 vi, nano 或是任意一个编辑工具来实现。但是你可能需要更多的步骤来完成操作。其实你要知道 touch 命令的主要功能并不是为了创建一个空文件哦。 什么是 touch 命令众所周知,每个文件都被附有时间戳。这个时间戳记包括访问时间和修改时间。而 Touch 命令主要就是用来修改文件的访问转载 2015-08-16 10:05:38 · 290 阅读 · 0 评论 -
Epoll在LT和ET模式下的读写方式
转自:http://www.ccvita.com/515.html在一个非阻塞的socket上调用read/write函数, 返回EAGAIN或者EWOULDBLOCK(注: EAGAIN就是EWOULDBLOCK)从字面上看, 意思是:EAGAIN: 再试一次,EWOULDBLOCK: 如果这是一个阻塞socket, 操作将被block,perror输出: Res转载 2016-02-20 22:14:09 · 300 阅读 · 0 评论 -
epoll 的accept , read, write(重要)
转自:http://blog.csdn.net/dodo_check/article/details/8553265在一个非阻塞的socket上调用read/write函数, 返回EAGAIN或者EWOULDBLOCK(注: EAGAIN就是EWOULDBLOCK)从字面上看, 意思是:* EAGAIN: 再试一次* EWOULDBLOCK:转载 2015-03-15 21:14:24 · 412 阅读 · 0 评论 -
多线程程序中操作的原子性
转自:http://www.parallellabs.com/2010/04/15/atomic-operation-in-multithreaded-application/0. 背景原子操作就是不可再分的操作。在多线程程序中原子操作是一个非常重要的概念,它常常用来实现一些同步机制,同时也是一些常见的多线程Bug的源头。本文主要讨论了三个问题:1. 多线程程序中对转载 2014-12-04 17:07:03 · 395 阅读 · 0 评论 -
(Google面试题)有四个线程1、2、3、4。线程1的功能就是输出1,线程2的功能就是输出2,以此类推.........现在有四个文件ABCD。初始都为空
转自 : http://blog.csdn.net/myblog_dwh/article/details/39522099现要让四个文件呈如下格式:A:1 2 3 4 1 2....B:2 3 4 1 2 3....C:3 4 1 2 3 4....D:4 1 2 3 4 1....请设计程序。 下面举例A,对于B、C、D转载 2014-12-04 22:46:57 · 1903 阅读 · 0 评论 -
Linux 软件安装中的 (configure, make, make install)
This tutorial is aimed at those who have just started using Linux. Generally when users from the Windows background enter the Linux scene,they are totally stumped by the software installation method转载 2012-05-24 03:13:32 · 1858 阅读 · 0 评论 -
关于getsockname函数的使用
转自出处getsockname可以获得一个与socket相关的地址。 服务器端可以通过它得到相关客户端地址。 而客户端也可以得到当前已连接成功的socket的ip和端口。第二种情况在客户端不进行bind而直接连接服务器时,而且客户端需要知道当前使用哪个ip进行通信时比较有用(如多网卡的情况)。笔者分别通过TCP和UDP协议进行测试,转载 2012-12-21 11:31:11 · 26173 阅读 · 2 评论 -
fcntl即F_SETFL,F_GETFL的使用,设置文件的flags
转自出处1、获取文件的flags,即open函数的第二个参数: flags = fcntl(fd,F_GETFL,0);2、设置文件的flags: fcntl(fd,F_SETFL,flags);3、增加文件的某个flags,比如文件是阻塞的,想设置成非阻塞: flags = fcntl(fd,F_GET转载 2012-12-21 11:56:58 · 21297 阅读 · 1 评论 -
再谈互斥锁与条件变量!
转自 http://blog.chinaunix.net/uid-27164517-id-3282242.htmlpthread_cond_wait总和一个互斥锁结合使用。在调用pthread_cond_wait前要先获取锁。pthread_cond_wait函数执行时先自动释放指定的锁,然后等待条件变量的变化。在函数调用返回之前,自动将指定的互斥量重新锁住。int p转载 2013-08-28 00:19:10 · 384 阅读 · 0 评论 -
socketpair理解
转自出处今天跟人谈到socketpair的问题,晚上回来写了个程序验证下自己的猜测! 先说说我的理解:socketpair创建了一对无名的套接字描述符(只能在AF_UNIX域中使用),描述符存储于一个二元数组,eg. s[2] .这对套接字可以进行双工通信,每一个描述符既可以读也可以写。这个在同一个进程中也可以进行通信,向s[0]中写入,就可以从s[1]中读取(只能从s[1转载 2014-02-06 23:59:22 · 618 阅读 · 0 评论 -
文件描述符的传递
我们知道父进程在子进程被fork出来之前打开的文件描述符是能被子进程继承下来的,但是一旦子进程已经创建后,父进程打开的文件描述符要怎样才能传递给子进程呢?Unix提供相应的技术来满足这一需求,这就是同一台主机上进程间的文件描述符传递,很美妙而且强大的技术。想象一下我们试图实现一个服务器,接收多个客户端的连接,我们欲采用多个子进程并发的形式来处理多客户端的同时连接,这时候我们可能有两种想法:转载 2014-02-05 19:06:04 · 1773 阅读 · 0 评论 -
Linux进程间通信——使用信号量
转自出处转载 2014-06-04 16:11:58 · 392 阅读 · 0 评论 -
linux 如何创建守护进程
转自出处转载 2014-06-18 20:58:27 · 999 阅读 · 0 评论 -
linux系统编程之进程(四):进程退出exit,_exit区别即atexit函数
转自出处:http://www.cnblogs.com/mickole/p/3186606.html转载 2014-10-27 16:34:49 · 378 阅读 · 0 评论 -
孤儿进程与僵尸进程[总结]
转自出处: http://www.cnblogs.com/anker/p/3271773.html转载 2014-10-27 16:19:57 · 425 阅读 · 0 评论 -
有关网络编程
有关网络编程的博客http://blog.csdn.net/ywh147/article/category/728421转载 2014-11-30 23:21:59 · 368 阅读 · 0 评论 -
Google面试题(java)—有四个线程1、2、3、4。线程1的功能就是输出1,线程2的功能就是输出2,以此类推.........现在有四个文件ABCD
转自:http://blog.csdn.net/b275518834/article/details/8750142import java.util.ArrayList;import java.util.HashMap;import java.util.List;public class CallThread { private static class MyRunabl转载 2016-02-20 22:59:26 · 2028 阅读 · 1 评论