多线程爬虫 多线程的复杂性 1.资源、数据的安全性:锁保护 2.原子性:数据操作是天然互斥的 3.同步等待:wait()、notify()、notifyAll() 4.死锁:多个线程对资源互锁,造成死锁 5.容灾:任何线程出现错误,整个进程都会停止 多线程的优势 1.内存空间共享,信息数据交换效率高 ...
分类:
编程语言 时间:
2019-03-13 12:41:24
阅读次数:
185
1.通信就是指相互交换一些数据或者发送一些控制指令,比如一个线程给另一个暂停执行的线程发送一个恢复执行的指令。 可变共享变量是天然的通信媒介,也就是说一个线程如果想和另一个线程通信的话,可以修改某个在多线程间共享的变量,另一个线程通过读取这个共享变量来获取通信的内容。 2.这里边就不得不提wait/ ...
分类:
编程语言 时间:
2019-02-22 00:32:07
阅读次数:
320
Java的多线程实现生产/消费模式 在Java的多线程中,我们经常使用某个Java对象的wait(),notify()以及notifyAll() 方法实现多线程的通讯,今天就使用Java的多线程实现生产/消费模式,需求如下: + 线程A ProductThread 继承Thread 实现生产数据 + ...
分类:
编程语言 时间:
2019-02-17 23:47:11
阅读次数:
186
Object类中的wait(),notify()和notifyAll()可以实现线程的等待通知模型,同样在ReentrantLock中可以借助Condition来完成这种机制。本篇就简要介绍Condition的工作原理。 先看一下Condition的使用示例: 这段代码的输出为: 等待时间大概为10 ...
分类:
其他好文 时间:
2019-02-16 11:58:08
阅读次数:
161
目录 1.线程的六个状态 2.sleep和wait的区别 3.锁池(EntryList)和等待池(WaitSet) 4.notify和notifyall的区别 五、线程的状态 1.线程的六个状态 2.sleep和wait的区别 3.锁池(EntryList)与等待池(WaitSet) 4.notif ...
分类:
编程语言 时间:
2019-02-11 20:06:45
阅读次数:
190
1.Condition简介 任何一个java对象都天然继承于Object类,在线程间实现通信的往往会应用到Object的几个方法,比如wait(),wait(long timeout),wait(long timeout, int nanos)与notify(),notifyAll()几个方法实现等 ...
分类:
其他好文 时间:
2019-02-08 20:03:50
阅读次数:
182
Java基础12:深入理解Class类和Object类 Java中Class类及用法 Java程序在运行时,Java运行时系统一直对所有的对象进行所谓的运行时类型标识,即所谓的RTTI。 这项信息纪录了每个对象所属的类。虚拟机通常使用运行时类型信息选准正确方法去执行,用来保存这些类型信息的类是Cla ...
分类:
编程语言 时间:
2019-02-08 19:51:07
阅读次数:
172
一、线程的基本概念 程序(program)是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象。 进程(process)是程序的一次执行过程,或是正在运行的一个程序。动态过程:有它自身的产生、存在和消亡的过程。 如:运行中的QQ,运行中的MP3播放器 程序是静态的,进程是动 ...
分类:
编程语言 时间:
2019-01-27 13:04:50
阅读次数:
155
关于这三个方法,我们可以查询API得到下列解释: wait():导致当前的线程等待,直到其他线程调用此对象的notify( ) 方法或 notifyAll( ) 方法或者指定的事件用完 notify():唤醒在此对象监视器上等待的单个线程 notifyAll():唤醒在此对象监视器上等待的所有线程 ...
分类:
编程语言 时间:
2019-01-17 20:13:28
阅读次数:
228
一个线程有五种状态: 新建状态:使用 new 关键字后,线程处于新建状态。 就绪状态:使用start()后线程进入就绪状态,sleep()结束之后线程进入就绪状态,join()结束之后线程进入就绪状态,I/O完成后线程进入就绪状态,notify()或notifyAll()之后线程进入就绪状态,int ...
分类:
其他好文 时间:
2019-01-13 20:25:23
阅读次数:
163