`
sharp-fcc
  • 浏览: 105486 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
        计算机以一种十分简单的方式进行通信,即以1和0的方式存储和传输数据的,在两个计算机进行通信的时候,没有人会担心这些细节,所以我们每次都用相同的方式来完成该项工作,这些被称为协议栈。tcp、ip协议是的当今最流行的协议栈。在计算机网络中分为7层,映射如下:      Transport Layer:TCP      NetWork Layer:IP      而socket大致在Session Layer,socket是处理两个进程间的通信的,就像电话系统,当一个人拿起电话,相当于,占用一个socket,拨电话,然后另外一端接起电话,这样就相当于建立起了socket通信,so ...
       其实,在Java中任何一个对象均有一个锁,而syhchronized同步块在调用时会检测该对象的锁定情况,主过程和子过程两个线程竞争同一对象时,在主过程中调用wait()方法,子过程即可进入synchronized同步块。而当子过程调用no ...
Java所有的类都具有线程的潜力,Java赋予的每个对象一个锁,在计算机内部工作在同一时间,只有一个对象可以持有锁,也就是说程序在同一时间只有一个程序可以运行,这里我把对象比作是一个小的程序。而多处理器,那么就另当别论了。       在这里我们首先学习一下公共方法wait,notify,notifyAll。       wait方法可以使在当前线程的对象等待,直到别的线程调用此对象的notify或notifyAll方法(注意:调用的是此对象的notify和notifyAll),并且当前运行的线程必须具有此对象的对象监视器,对象监视器我们可以从三个方法中获得,如下:       1.在 ...
public void execute(Runnable command) { if (command == null) throw new NullPointerException(); if (poolSize >= corePoolSize || !addIfUnderCorePoolSize(command)) { if (runState == RUNNING && workQueue.offer(command)) { if (runState != RUNNING || poolSize == 0) ensureQueuedTaskHandled(comman ...
       做过一个基于线程池的http服务器,面试时老师经常会问到线程池跟多线程有什么好处,所以在这里总结一下:                当浏览器传送一个请求到达服务器后,如果是多线程,服务端会临时性的创建一个新的进程,来处理相应的客户端的请求,当一个线程处理完相应的客户端任务后,线程也就结束了自己的生命周期,不能再一次被启用。另外在java中,如果每当一个请求到达就会创建一个新的进程,开销是很大的。        在实际应用中,系统在创建和销毁线程所花的时间,有时候甚至比处理这个请求所花的时间更多,不光是创建和销毁,线程活动所花费的时间也是很多的。在jvm里创建太多的线程,则 ...
引子:今天在面试的时候经过一位工程师的指点,在所做的服务器中使用了nio的特性,首先对于nio进行一下了解。   在 Java 编程中,直到最近一直使用 流 的方式完成 I/O。所有 I/O 都被视为单个的字节的移动,通过一个称为 Stre ...
Global site tag (gtag.js) - Google Analytics