ICode9

精准搜索请尝试: 精确搜索
  • 一次代码检查发现的奇怪小问题,InterruptedException 异常2022-06-30 15:02:08

    在一次代码检查时,系统提示以下问题             发现一处已经捕获了的异常被检测出Bug,    具体描述是说线程字段需要重新清理状态,或重新调用异常        InterruptedExceptions should either be rethrown - immediately or after cleaning up the method's stat

  • java回调函数2022-06-21 06:31:32

    异步回调(理解成ajax)对将来某个事件的结果进行建模 import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; public class FutureTest { public static void main(String[] args) throws E

  • 第3章 Zookeeper 客户端API操作2022-06-04 18:31:52

    3.3 客户端API操作 前提:保证hadoop102、hadoop103、hadoop104服务器上Zookeeper集群服务端启动。 zk.sh start 3.3.1 IDEA环境搭建 1)创建一个工程:zookeeper 2)添加pom文件 <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> &l

  • 十四、线程休眠2022-05-14 21:04:35

    sleep(时间)指定当前线程阻塞的毫秒数; sleep存在异常InterruptedException; sleep时间达到后线程进入就绪状态; sleep可以模拟网络延时,倒计时等。 每一个对象都有一个锁,sleep不会释放锁; 倒计时Demo: public class ThreadSleep2 { public static void main(String[] args)

  • 第3章 线程间通信2022-05-03 00:34:17

    线程间通信    对于两个线程a,b; 首先线程a: (1) 判断:变量值如果为0 (2) 干活:变量值+1 (3) 通知:a线程通知b线程对变量-1 其次线程b: (1) 判断:变量值如果为1 (2) 干活:变量值-1 (3) 通知:b线程通知a线程对变量+1 依次类推。。。   代码实现:方式一:synchronized关键字 package JUC.syn

  • 交替打印问题2022-04-20 21:34:06

    题目描述 启动两个线程,交替打印1-100,不允许使用AtomicInteger等 代码 package com.daleyzou.Test; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.ReentrantLock; /** * Test1 * @description * 启动两个线程,交替打印1-100,不允许使用Ato

  • 虚假唤醒问题2022-04-14 18:02:54

    不安全代码 /** * 线程之间的通信问题: 生产者和消费者问题! 等待唤醒,通知唤醒 * 线程交替执行 A B 操作同一个变量 num=0 * A num+1 * B num-1 */ public class A { public static void main(String[] args) { Data data = new Data(); new Thread

  • 线程终止2022-03-27 21:33:20

    /** * 示例- 线程stop强制性中止,破坏线程安全的示例 */public class Demo3 { public static void main(String[] args) throws InterruptedException { StopThread thread = new StopThread(); thread.start(); // 休眠1秒,确保i变量自增成功 Thread.sleep(1000);

  • 多线程实现生产者消费者模型2022-02-27 23:03:34

    package com.atgu; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.ReentrantLock; class ShareDate1{ private int num=0; ReentrantLock lock = new ReentrantLock(); Condition condition = lock.newCondition(); publ

  • 20220210 java.util.concurrent.BlockingQueue 方法说明2022-02-10 21:33:22

    方法对比 抛出异常 特殊值 阻塞 超时 插入 add(e) offer(e) put(e) offer(e, time, unit) 移除 remove() poll() take() poll(time, unit) 检查 element() peek() 不可用 不可用 方法声明 // 添加元素方法 boolean add(E e); boolean offer(E e); boolean offer(

  • 线程休眠_sleep2022-02-04 19:33:48

    线程休眠 sleep (时间)指定当前线程阻塞的毫秒数; sleep存在异常InterruptedException; sleep时间达到后线程进入就绪状态; sleep可以模拟网络延时,倒计时等。 每一个对象都有一个锁,sleep不会释放锁; package com.wang.multiThread.state; import com.wang.multiThread.demo01.T

  • CompletionService应用2022-01-26 17:30:27

    public static void main(String[] args) throws InterruptedException, ExecutionException { ExecutorService service = Executors.newFixedThreadPool(5); CompletionService<Integer> cs = new ExecutorCompletionService<>(service);

  • 第三章:(1)线程间通信—Synchronized实现线程通信&虚假唤醒2022-01-18 22:35:33

    一、线程间通信   线程间通信的模型有两种:共享内存 和 消息传递,以下方式都是基本这两种模型来实现的。   当调用线程 start() 方法后,是由操作系统来调度的,执行顺序是不固定的。   如果想让线程按照要求的顺序来执行,这就需要进行线程间通信。   二、多线程编程步骤(中)   

  • java中的协程Quasar2022-01-10 23:58:57

    HELLOWORLD public class Helloworld { @Suspendable static void m1() throws InterruptedException, SuspendExecution { String m = "m1"; //System.out.println("m1 begin"); m = m2(); //System.out.printl

  • Java------多线程_高级主题_可重入锁_原理实现(十六)2021-12-13 11:34:14

    Java------多线程_高级主题_可重入锁_原理实现(十六) 可重入锁: 锁作为并发共享数据保证一致性的工具,大多数内置锁都是可重入的,也就是说,如果某个线程试图获取一个已经由它自己持有的锁时,那么这个请求会立刻成功,并且会将这个锁的计数值加1,而当线程推出同步代码块时,计数器会递减,当

  • J.U.C中的工具类及原理分析(CountDownLatch、Semaphore、CyclicBarrier)2021-12-09 09:59:20

    前面文章讲述的Synchronized和ReentrantLock都是Java中的互斥锁,排它锁,其实在J.U.C中还有一种锁,那就是共享锁,让我们一起来看看吧. 什么是共享锁? 该锁可以被多个线程共有,不与其他线程互斥,非独占状态。 主要以CountDownLatch、Semaphore、CyclicBrrier来分析共享锁原理 1.CountD

  • Java虚假唤醒及如何避免虚假唤醒2021-11-29 14:34:50

    先给出一段虚假唤醒的代码如下: public class SynchronizeDemo2 { public static void main(String[] args) { Data2 data = new Data2(); new Thread(() -> { for (int i = 0; i < 5; i++) { try { da

  • 三个线程按顺序执行-join实现2021-11-22 23:33:54

    package com.example.demo.multithread; class T1 extends Thread { public Thread t; public T1(Thread t) { this.t = t; } public void run() { try { if (t != null) { t.join(); } System.out.println("a"); } catch (InterruptedEx

  • 通俗易懂讲 CompletableFuture2021-10-30 16:03:27

    使用Future获得异步执行结果时,要么调用阻塞方法get(),要么轮询看isDone()是否为true,这两种方法都不是很好,因为主线程也会被迫等待。 从Java 8开始引入了CompletableFuture,它针对Future做了改进,可以传入回调对象,当异步任务完成或者发生异常时,自动调用回调对象的回调方法。 构造任务

  • JUC并发编程2021-10-25 01:32:34

    wait/sleep区别 来自不同的类 wait->object sleep->Thread   wait会释放锁 sleep会抱着锁睡觉 Synchronized和Lock区别     .notifyAll();通知其他线程.wait();等待 (会释放锁)(if改为while防止虚假唤醒) package lock;import java.util.concurrent.locks.Lock;public class demo1 {

  • 重入锁ReentrantLock的搭档:Condition条件2021-10-13 20:02:49

    接口基本方法: /* *会使当前线程等待,同时释放当前锁,当其他线程中使用signal() 或者singnAll()方法时,线程会重新获得锁并继续执行。或者当线程被中断时,也能跳出等待,和Object.wait()方法相似。 */ void await() throws InterruptedException; /* *和await方法基本相同,但不会再等待

  • 生产者消费者模式为什么不用if语句而用while循环2021-10-11 19:32:22

    一、生产者消费者模式(只有两个线程一个是生产者线程一个是消费者线程) 重点!!!!!!!看这篇博客的时候首先要描述一下wait()方法的等待机制,当当先线程被wait之后会释放锁,当这个线程被唤醒的时候会继续从wait方法后面的代码继续执行。这个点也是这篇文章的点睛之笔,重中之重。也是为什么不

  • 阻塞队列2021-09-10 09:35:19

    和队列的offer和poll不同 阻塞队列是put和take 停摆之前操作 只能在take之前去操作 不然就完蛋 如果第二个take写在新线程之前,自己的两个打印都会卡住 class XXX{ static BlockingQueue<Integer> blockingQueue = new ArrayBlockingQueue<Integer>(3); public static void

  • 主线程等待所有的子线程结束之后再执行?(转)2021-08-06 16:02:42

    转自:https://www.jianshu.com/p/ba8a518c02c3 一、使用Thread的join方法 join()方法使得主线程等待子线程执行结束,阻塞的是主线程。 package com.qcy.testThreadFinish; /** * @author qcy * @create 2020/09/09 17:05:23 */ public class Case1 { public static void ma

  • zookeeper 使用api 进行节点增删改查及实现简易的配置中心2021-07-25 23:02:59

    本文为博主原创,未经允许不得转载: 目录:   1. 对 zookeeper 节点进行增删改查既配置acl 权限等   2.使用 zookeeper  实现一个简易的配置中心      1. 对 zookeeper 节点进行增删改查既配置acl 权限等   apache 提供了对 zookeeper 操作的 api 操作。即引入

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有