【调试】Linux下超强内存检测工具Valgrind 内容简介 Valgrind是什么? Valgrind的使用 Valgrind详细教程 1. Valgrind是什么? Valgrind是一套Linux下,开放源代码(GPLV2)的仿真调试工具的集合。Valgrind由内核(core)以及基于内核 ...
分类:
系统相关 时间:
2017-02-03 12:34:41
阅读次数:
206
/* 进程: 进程就是正在运行的应用程序。 进程了负责了内存空间划分。 线程: 一个进程中的 代码是由线程去执行的,线程也就是进程中一个执行路径。 多线程: 一个进程中有多个线程可以同时执行任务。 多线程 的好处: 1. 解决一个进程中可以同时执行多个任务的问题。 2. 提高了资源利用率。 多线程的... ...
分类:
编程语言 时间:
2017-02-02 19:57:39
阅读次数:
246
server: client: 知识点: 1)服务端的多线程改为select复用来处理多用户。 应该服务器瓶颈是在网络。CPU应该不是瓶颈,如果网络不是瓶颈,想再提高性能,可以考虑增加线程处理。 1.标准输入可以另用线程,从select 分离出去。 2.serverFD的accpet,也可以另用线程 ...
Thread类中的方法调用方式: 学习Thread类中的方法是学习多线程的第一步。在学习多线程之前特别提出一点,调用Thread中的方法的时候,在线程类中,有两种方式,一定要理解这两种方式的区别: 1、this.XXX() 这种调用方式表示的线程是线程实例本身 2、Thread.currentThr ...
分类:
编程语言 时间:
2017-02-01 20:42:38
阅读次数:
222
server: 知识点 1)FD_ISSET 只处理本文件描述符的动作。逻辑上的流程被分割到对应的文件符FD_ISSET的事件中。尽可能提高效率。 缺陷: 1)此案例中,客户端粗暴的close,会导致客户端并未接收完全的服务端的发送就被迫关闭。 应该使用shutdown来改善。 2)缓冲机制导致程序 ...
分类:
编程语言 时间:
2017-02-01 13:23:50
阅读次数:
296
关于C#多线程的文章,大部分都在讨论线程的起停或者是多线程同步问题。多线程同步就是在不同线程中访问同一个变量(一般是线程工作函数外部的变量),众所周知在不使用线程同步的机制下,由于竟态的存在会使某些线程产生脏读或者是覆盖其它线程已写入的值(各种混乱)。而另外一种情况就是我们想让线程所访问的变量属于线 ...
分类:
编程语言 时间:
2017-01-30 22:49:51
阅读次数:
266
服务端: 1)多线程处理客户connect。主线程,处理用户输入,二线程处理accpet,每次有新的connect,就建立新线程处理每个客户端。 2)二线程阻塞在accept,其他新线程阻塞在read。 3)当客户端close。服务端对应线程,read得到0. 之后也进行close(这一部上次实验没 ...
分类:
编程语言 时间:
2017-01-30 18:45:18
阅读次数:
303
一、背景 在没有学习Java多线程以前,总觉得多线程是个很神秘的东西,只有那些大神才能驾驭,新年假期没事就来学习和了解一下Java的多线程,本篇博客我们就来从头说一下多线程到底是怎么回事。 二、概述 1.进程的概念 每一个正在运行的程序都是一个进程,它是系统进行资源分配和调用的独立单位。且 每一个进 ...
分类:
编程语言 时间:
2017-01-29 22:12:54
阅读次数:
296
前言 花了两天时间写一个简单的爬虫程序。目前所用的技术十分简单。就是获得目标页面的html文档内容,然后解析其中有用的内容。既没有实现模拟登陆,也没有任何防止反爬虫的措施,甚至没有使用多线程。不过在其中遇到的问题还是引发了我很多的思考与问题,比如爬虫的合法性问题以及爬虫的危害等。于是写下这篇文章记录 ...
分类:
其他好文 时间:
2017-01-28 22:56:39
阅读次数:
2383
前言: 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景。 ...
分类:
编程语言 时间:
2017-01-28 10:47:55
阅读次数:
317