摘要: 一般而言,线程通常有以下的这么几个状态:创建状态:准备好了一个多线程操作对象就绪状态:调用了start()方法,等待CPU调度运行状态:执行run()方法,正在运行阻塞状态:暂时停止执行,把资源给其他线程调用终止状态:线程执行完毕,不再使用。线程的常用操作取得和设置线程的名称对于一个线程,我们可以使用getName()和setName()一般我们会在线程启动之前给线程起名,但是线程运行之后,我们也是可以给予线程名称的。两个线程是可以重名的,如果我们没有给线程起名,那么java会自动分配一个名字给这个线程。也可以通过构造方法给线程一个名字。通过currentThread方法可以取得当前的线程对象 阅读全文
posted @ 2014-01-01 12:14 whthomas 阅读(344) 评论(0) 推荐(0) 编辑
摘要: 有好几个月没写博客了,各种破事儿忙完,决定继续写博客,恰好最近想了解下有关Java并发的一些知识,所以就准备这一段时间,用零碎的时间多记录一点有关并发的知识。希望这次能一直坚持下去。想了解并发,必须要先知道一些线程的知识,所以前面几篇还是先写一点Java线程的东西。什么是线程?这又需要从操作系统说起了。我们在windows中打开任务管理器,就可以查看进程的数量,而一个进程就代表了一个运行的程序。而在一个进程中,又有很多的线程,他们分管着这个程序的各个小部分。所以: 一个进程拥有多个线程 一个线程只属于一个进程而在java中实现多线程有两个方式:一、继承Thread类二、实现Runnab... 阅读全文
posted @ 2013-11-24 14:55 whthomas 阅读(301) 评论(2) 推荐(0) 编辑
摘要: 目前,市场上流行有很多web服务器软件,每种服务器都有自己的特点。我们在开发的过程中,经常要和它们打交道,所以了解它们的工作原理也是很重要的。几款比较流行的服务器它们会做些什么?第三篇中有这样的一张图片,它演示了客户端和服务器在发起事务时它们需要做的几个事情。这里就详细地谈谈服务器在运行过程中会做什么。首先服务器在完全运行起来之后,客户端就可以向服务器发起连接了(关于这个部分,大家可以看第三篇笔记)。现在的web服务器大多数都是多线程服务器了,一般在服务器上配置连接池,限制连接的数量,可以大大减轻服务器的连接压力,以保证网络服务的质量。在这个阶段,服务器也会判断客户端的身份,比如一些有恶意行为 阅读全文
posted @ 2013-07-01 16:47 whthomas 阅读(1326) 评论(6) 推荐(2) 编辑
摘要: http报文是在http应用程序之间发送的数据块,这些数据块以一些文本形式的元信息。请求报文从客户端流入服务器,向服务器请求数据,服务器响应请求,响应报文从服务器流出,回到客户端。这就构成了一个事务.报文总是向下流动,所有的报文的发送者都在上游,所有的报文接受者都在下游。所以无论是浏览器还是服务器,他们都既可以在上游,也可以在下游。这个是用火狐浏览器得到的一个报文内容报文由以下的部分组成: 起始行(startline) 首部(header) 主体(body)接下来详细看看报文的内容。请求报文格式: 第一行是报文请求的起始行,它说明了这个报文要做什么。这好像是我们去吃饭,告诉服务... 阅读全文
posted @ 2013-06-29 21:41 whthomas 阅读(2041) 评论(0) 推荐(1) 编辑
摘要: 几乎所有的http通信都是由TCP/IP承载的。http好比一辆汽车,而TCP是一条公路,所有的汽车都要在公路上跑,看看http是如何在tcp这条公路上往返的。首先简单地看看tcp,TCP连接是通过4个值来识别的: 这四个值定义了一个TCP连接,两条不同的TCP连接中这四个值是不可能完全都相同的。在第一篇中有一个简单的HTTP介绍,下面是一个比较完整的HTTP连接过程:由此看出,http实际上是在tcp协议(建立连接通信)的基础上传输的,但是tcp有一些本身的机制阻止了http的性能: ①客户端发送一个请求到服务器,建立一个tcp连接是需要消耗一定的时间的,如果我们发送了上百个连接,那么这.. 阅读全文
posted @ 2013-06-27 23:23 whthomas 阅读(1557) 评论(4) 推荐(3) 编辑
摘要: 我们之所以希望浏览网页,其中一个重要的原因就是庞大的web世界中有很丰富的资源,他就像哆啦a梦的口袋,随时都能拿出我们想要的宝贝。这些资源通过http被传送到我们的浏览器,并展示到我们的屏幕上。而我们之所以可以准确地找到这些资源,是URL(UniformResourceLocator,统一资源定位符)帮我们确定了它们(资源)的位置。 在没有url之前,我们想获取资源,必须要先想办法,连接到一个服务器上去,这个过程中可能还需要登陆,然后在服务器上找到目录,然后切换成二进制模式,这样才可以获得自己的资源。这个过程很繁琐,而且,用户也不一定会使用。直到互联网之父蒂姆·伯纳斯·李( 阅读全文
posted @ 2013-06-26 16:16 whthomas 阅读(1369) 评论(2) 推荐(1) 编辑
摘要: 写在前面:第一次想写系列文章,学习了一些web知识后,发现自己还有很大的不足,但又不知道该学习些什么来完善自己的知识体系,偶然在网上看到了一篇介绍http的文章,觉得对自己有一些帮助,于是想要开始学习http,我担心自己不能够坚持下去,所以希望能通过这种方式督促自己学习。http概览 HTTP协议(HyperTextTransferProtocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。——百度百科 首先,.. 阅读全文
posted @ 2013-06-26 14:18 whthomas 阅读(2095) 评论(7) 推荐(4) 编辑
摘要: 在centOS里最常用的DNS服务工具应该是bind了。下面就以bind为例做一个DNS服务。首先查看bind是否已经安装Rpm-qa|gerpbind如果没有的话就用yum安装一下BindYum-yinstallbind这样就安装好了bind配置named.conf文件把listen-onport53{x.x.x.x;};改成listen-onport53{any;};这样它就会监听所有的ip地址了后边的ipv6可以把它注释掉。(也可以不管它),后面再把allow-query{localhost;};改成allow-quety{any;};其它地方保持默认就好了然后打开named.rfc19 阅读全文
posted @ 2013-06-20 09:09 whthomas 阅读(833) 评论(0) 推荐(0) 编辑
摘要: Yum是一种聪明安装的方式,用rpm安装的时候我们总是发现需要各种依赖包。但是yum总是可以自己找到这些个包,我们也可以在本地搭建yum使用df命令找到光盘iso镜像记下镜像的路径然后用vim打开/etc/yum.repos.d/CentOS-Media.repo找到baseurl删去所有的file(或者都注释掉,还是注释比较保险)然后把本地的rpm包位置挂起来,按照之前的格式EX. Baseurl=file:///media/CentOS_6.0_Final在下面找到enabled=0把它改成enabled=1保存退出。:wq此时再打开/etc/yum.repos.d/cd/etc/yum. 阅读全文
posted @ 2013-04-29 22:39 whthomas 阅读(1102) 评论(1) 推荐(0) 编辑