并发/线程
文章平均质量分 62
ruiguang21
这个作者很懒,什么都没留下…
展开
-
java 异步查询转同步的 7 种实现方式
异步查询转同步的 7 种实现方式转载 2022-12-14 11:51:52 · 2672 阅读 · 0 评论 -
Java世界里一切皆对象
在Java世界里一切皆对象。Java有两种对象:Object实例对象和 Class对象。每个类运行时的类型信息用Class对象表示,它包含与类名 称、继承关系、字段、方法有关的信息。JVM将一个类加载入自己的方 法区内存时,会为其创建一个Class对象,对于一个类来说其Class对象 是唯一的。Class类没有公共的构造方法,Class对象是在类加载的时候由Java虚 拟机调用类加载器中的defineClass方法自动构造的,因此不能显式地声 明一个Class对象。所有的类都是在第一次使用时被动态加原创 2022-01-08 16:40:13 · 221 阅读 · 0 评论 -
Java内置锁(synchronized)
Java中每个对象都可以用作锁,这些锁称为内置锁。线程进入同步代码块或方法时会自动获得该锁,在退出同步代码块或方法时会释放该锁。获得内置锁的唯一途径就是进入这个锁保护的同步代码块或方法。Java内置锁是一个互斥锁,这就意味着最多只有一个线程能够获得该锁,当线程B尝试去获得线程A持有的内置锁时,线程B必须等待或者阻塞,直到线程A释放这个锁,如果线程A不释放这个锁,那么线程B将永远等待下去。...原创 2022-01-08 11:46:48 · 1022 阅读 · 0 评论 -
CountDownLatch等待多线程并发的工具类
/** * CountDownLatch(倒数闩)是一个非常实用的等待多线程并发的工具类。 * 10个线程并行运行,对一个共享数据进行自增运算,每个线程自增运算1000次,具体 * @author ADMIN * */public class CountDownLatchTest { final static int max_tread =10;//10个线程并行运行 final static int max_run =1000;//每个线程自增运算1000次 //测试不安.原创 2022-01-08 11:29:47 · 143 阅读 · 0 评论 -
悲观锁和乐观锁
悲观锁指对数据被外界修改持保守态度,认为数据很容易就会被其他线程修改,所以 在数据被处理前先对数据进行加锁,并在整个数据处理过程中,使数据处于锁定状态,悲观锁的实现往往依靠数据库提供的锁机制,即在数据库中,在对数据记录操作前给记录加 排它锁 。如果获取锁失败, 则说明数据正在被其他线程修改,当前 线程则等待或者抛出异常常。 如果获取锁成功,则对记录进行操作 ,然后提交事务后释放排它锁;每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每原创 2022-01-08 11:13:44 · 693 阅读 · 0 评论 -
死锁发生时的条件和要想避免死锁
死锁是指两个或两个以上的线程在执行过程中,因争夺资源而造成的相互等待的现象;在无外力作用下,一直处于等待的状况;学过操作系统的朋友应该都知道 * 死锁发生时的条件: ** (1)互斥条件:一个资源每次只能被一个进程使用。独木桥每次只能通过一个人。 * (2)请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。乙不退出桥面,甲也不退出桥面。 * (3)不剥夺条件: 进程已获得的资源,在未使用完之前,不能强行剥夺。甲不能强制乙退出桥面,乙也不能强制甲退出桥面。 * (4)循环等待条.原创 2022-01-08 10:44:19 · 310 阅读 · 0 评论 -
网络多线线程下载并合并文件示例
package com.yanshu.tread;import java.io.File;import java.io.FileFilter;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.InputStream;im...原创 2018-03-16 13:08:03 · 1014 阅读 · 0 评论 -
使用阻塞队列爬取代理ip实现爬虫
package com.yanshu.service;/*import org.apache.commons.io.IOUtils;*/import org.jsoup.Jsoup;import org.jsoup.nodes.Document;import org.jsoup.nodes.Element;import org.jsoup.select.Elements;原创 2017-11-21 13:33:52 · 228 阅读 · 0 评论 -
解决并发问题
总结一下,也就是说Lock提供了比synchronized更多的功能。但是要注意以下几点: 1)Lock不是Java语言内置的,synchronized是Java语言的关键字,因此是内置特性。Lock是一个类,通过这个类可以实现同步访问; 2)Lock和synchronized有一点非常大的不同,采用 synchronized不需要用户去手动释放锁,当synchronized方原创 2017-11-17 14:44:49 · 656 阅读 · 0 评论 -
java synchronized详解
记下来,很重要。Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。 二、然而,当一个线程访问object的一原创 2017-11-17 14:41:55 · 188 阅读 · 0 评论