logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

多线程(2)

lambda是回调函数,它的执行时机是很久之后(操作系统真正创建出线程之后,才会执行),很有可能,后续线程创建好了,但是当前main的方法执行完了,isFinished销毁了。为了解决上述的问题,Java把被捕获的变量给拷贝一份,拷贝给lambda里面,所以外面的变量是否销毁,就不会影响lambda里面的执行了。但是,Thread对象的生命周期和系统中的线程的生命周期是不同的(可能存在Thread

#java#开发语言
文件(Java)

当前IO流对象,read和write属于直接读写文件,效率比较低,要想提高效率:1)写代码的时候,手动创建缓冲区(byte[]),手动减少 read write次数2)使用标准库提供的“缓冲区流” BufferedStream,把InputStream之类的对象套上一层OK啦,到此结束!!!

#java#开发语言
多线程案例编写(阻塞队列)

既然要模拟阻塞队列,就得满足阻塞队列的特性,先来满足第一个线程安全的特性代码示例:当然也可以不用this,新建一个锁对象啥的也可以接下来,就得满足阻塞队列的第二个很长的特性了,就需要使用“wait 和 join了”对于入队,代码示例:所以:对于出队,代码示例:所以:假设有若干个线程使用这个队列,要么所有的线程阻塞在put,要么所有的线程阻塞在take,不可能有一些阻塞在put,有一些阻塞在take

#java#开发语言
多线程案例编写(阻塞队列)

既然要模拟阻塞队列,就得满足阻塞队列的特性,先来满足第一个线程安全的特性代码示例:当然也可以不用this,新建一个锁对象啥的也可以接下来,就得满足阻塞队列的第二个很长的特性了,就需要使用“wait 和 join了”对于入队,代码示例:所以:对于出队,代码示例:所以:假设有若干个线程使用这个队列,要么所有的线程阻塞在put,要么所有的线程阻塞在take,不可能有一些阻塞在put,有一些阻塞在take

#java#开发语言
多线程(1)

通过多进程编程的方式,可以实现“并发编程”的效果。进程整体是一个比较“重”的概念,创建进程/销毁进程 开销比较大,尤其是频繁创建进程的时候(服务器开发)。所以为了解决问题,引入了线程(Thread),轻量级进程(创建 销毁的开销比较小)。

到底了