上一页 1 ··· 52 53 54 55 56 57 58 59 60 ··· 216 下一页

2014年9月4日

Linux系统编程(29)——线程间同步(续篇)

摘要: 线程间的同步还有这样一种情况:线程A需要等某个条件成立才能继续往下执行,现在这个条件不成立,线程A就阻塞等待,而线程B在执行过程中使这个条件成立了,就唤醒线程A继续执行。在pthread库中通过条件变量(Condition Variable)来阻塞等待一个条件,或者唤醒等待这个条件的线程。Cond... 阅读全文

posted @ 2014-09-04 01:02 三少爷的剑123 阅读(129) 评论(0) 推荐(0)

Linux系统编程(28)——线程间同步

摘要: 多个线程同时访问共享数据时可能会冲突,这跟前面讲信号时所说的可重入性是同样的问题。比如两个线程都要把某个全局变量增加1,这个操作在某平台需要三条指令完成: 从内存读变量值到寄存器寄存器的值加1将寄存器的值写回内存 假设两个线程在多处理器平台上同时执行这三条指令,则可能导致下图所示的结果,最后变量只... 阅读全文

posted @ 2014-09-04 00:53 三少爷的剑123 阅读(141) 评论(0) 推荐(0)

Linux系统编程(27)——线程控制

摘要: 进程在各自独立的地址空间中运行,进程之间共享数据需要用mmap或者进程间通信机制,那么如何在一个进程的地址空间中执行多个线程呢。有些情况需要在一个进程中同时执行多个控制流程,这时候线程就派上了用场,比如实现一个图形界面的下载软件,一方面需要和用户交互,等待和处理用户的鼠标键盘事件,另一方面又需要同... 阅读全文

posted @ 2014-09-04 00:51 三少爷的剑123 阅读(154) 评论(0) 推荐(0)

Linux系统编程(26)——守护进程

摘要: Linux系统启动时会启动很多系统服务进程,比如inetd,这些系统服务进程没有控制终端,不能直接和用户交互。其它进程都是在用户登录或运行程序时创建,在运行结束或用户注销时终止,但系统服务进程不受用户登录注销的影响,它们一直在运行着。这种进程有一个名称叫守护进程(Daemon)。 下面我们用ps ... 阅读全文

posted @ 2014-09-04 00:49 三少爷的剑123 阅读(205) 评论(0) 推荐(0)

Linux系统编程(25)——终端

摘要: 在Linux系统中,用户通过终端登录系统后得到一个Shell进程,这个终端成为Shell进程的控制终端。控制终端是保存在PCB中的信息,而我们知道fork会复制PCB中的信息,因此由Shell进程启动的其它进程的控制终端也是这个终端。默认情况下(没有重定向),每个进程的标准输入、标准输出和标准错... 阅读全文

posted @ 2014-09-04 00:46 三少爷的剑123 阅读(164) 评论(0) 推荐(0)

Linux企业级项目实践之网络爬虫(30)——通过查阅RFC文档扩充更加复杂的功能

摘要: HTTP是一种很简单的请求、响应式协议,客户端发送一个请求、服务器返回一个响应。HTTP 1.1 版本规范由 RFC2616 定义。了解了 HTTP请求、响应消息在TCP数据流中的格式,很容易使用纯 socket 模拟HTTP客户端、HTTP服务器发送接收数据。 RFC文档全是ASCII码,tx... 阅读全文

posted @ 2014-09-04 00:43 三少爷的剑123 阅读(171) 评论(0) 推荐(0)

Linux企业级项目实践之网络爬虫(29)——遵守robots.txt

摘要: Robots协议(也称为爬虫协议、机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。robots.txt文件是一个文本文件。robots.txt是搜索引擎中访问网站的时候要查看的... 阅读全文

posted @ 2014-09-04 00:27 三少爷的剑123 阅读(180) 评论(0) 推荐(0)

Linux企业级项目实践之网络爬虫(28)——爬虫socket处理

摘要: Socket是进程之间交换数据的机制。这些进程即可以是同一台机器上的,也可以是通过网络连接起来的不同机器。一旦一个Socket连接建立,那么数据就能够双向传输,直到其中一端关闭连接。 通常,请求数据的应用程序叫做客户端Client,而为请求服务叫做服务器Server。基本上说,首先,服务器监听一个... 阅读全文

posted @ 2014-09-04 00:27 三少爷的剑123 阅读(243) 评论(0) 推荐(0)

Linux企业级项目实践之网络爬虫(27)——多路IO复用

摘要: 与多线程和多进程相比,I/O多路复用的最大优势是系统开销小,系统不需要建立新的进程或者线程,也不必维护这些线程和进程。主要应用:(1)客户程序需要同时处理交互式的输入和服务器之间的网络连接(2)客户端需要对多个网络连接作出反应(3)TCP服务器需要同时处理多个处于监听状态和多个连接状态的套接字(... 阅读全文

posted @ 2014-09-04 00:26 三少爷的剑123 阅读(161) 评论(0) 推荐(0)

Linux企业级项目实践之网络爬虫(26)——线程池

摘要: 一旦有一个抓取请求开始,就创建一个新的线程,由该线程执行任务,任务执行完毕之后,线程就退出。这就是"即时创建,即时销毁"的策略。尽管与创建进程相比,创建线程的时间已经大大的缩短,但是如果提交给线程的任务是执行时间较短,而且执行次数非常频繁,那么服务器就将处于一个不停的创建线程和销毁线程的状态。这笔... 阅读全文

posted @ 2014-09-04 00:22 三少爷的剑123 阅读(179) 评论(0) 推荐(0)

上一页 1 ··· 52 53 54 55 56 57 58 59 60 ··· 216 下一页

导航