上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 24 下一页
摘要: 1 被synchronized修饰的方法调用了没有被synchronized修饰的方法,是否线程安全? 2多个方法同步 3线程不安全的例子 阅读全文
posted @ 2019-10-29 14:10 踏月而来 阅读(1063) 评论(0) 推荐(0) 编辑
摘要: 原子性 ​原子性指的是一个或者多个操作在 CPU 执行的过程中不被中断的特性 在多线程情况下,线程会被操作系统调度进行任务切换,占有CPU时间片段的就执行,否则就阻塞 java中对基础类型的变量赋值是原子性的,int a = 1 ; 但是像这种语句 count++; 在执行的时候,包含3的指令操作 阅读全文
posted @ 2019-10-28 15:23 踏月而来 阅读(1055) 评论(0) 推荐(0) 编辑
摘要: Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQueue,非阻塞队列的典型例子是ConcurrentLinkedQueue BlockingQueue是一个接口, 继承Queue接口,Queue接口继承 Collection Blocking 阅读全文
posted @ 2019-10-25 15:39 踏月而来 阅读(1677) 评论(0) 推荐(0) 编辑
摘要: AQS,即AbstractQueuedSynchronizer, 队列同步器,它是多线程访问共享资源的同步器框架,Java中的ReentrantLock/Semaphore/CountDownLatch等同步组件都依赖于它。它维护了一个同步器状态 (volatile int state 代表共享资源 阅读全文
posted @ 2019-10-24 15:58 踏月而来 阅读(1342) 评论(0) 推荐(0) 编辑
摘要: lock():若lock被thread A取得,thread B会进入block状态,直到取得lock;tryLock():若当下不能取得lock,thread就会放弃,可以设置一个超时时间参数,等待多久获取不到锁就放弃;lockInterruptibly():跟lock()情況一下,但是threa 阅读全文
posted @ 2019-10-23 15:23 踏月而来 阅读(1454) 评论(0) 推荐(0) 编辑
摘要: (1)Sleep是线程的方法,wait是Object的方法 (2)Sleep不释放锁,Wait会释放锁,线程进入一个与锁有关的等待队列里 (3)Sleep不需要唤醒,过了休眠时间后,线程主动进入可运行状态,Wait()方法要主动去唤醒,除了Wait(long millis)以外 (4)Sleep不依 阅读全文
posted @ 2019-10-22 20:00 踏月而来 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 使用多线程可以提高性能的前提条件 (1)任务具有并发性,即任务可以拆分为多个子任务,并发执行 (2)只有在CPU是性能瓶颈的情况下,多线程才能实现提升性能的目的。比如一段程序,瓶颈在于IO操作,那么把这个程序拆分到2个线程中执行,也是无法提升性能的 (3)CPU必须是多核的 多线程的应用场景 (1) 阅读全文
posted @ 2019-10-22 12:33 踏月而来 阅读(4313) 评论(0) 推荐(0) 编辑
摘要: 方式一 方式二 阅读全文
posted @ 2019-10-20 22:19 踏月而来 阅读(533) 评论(0) 推荐(0) 编辑
摘要: /** *将线程要运行的逻辑代码及数据同步相关的锁,放在同一个类中,这里是Business类,数据同步由Business类维护 *而与线程控制相关的代码分开,指的是线程类本身 * */ public class CommunicationTest { public static void main(String[] args) { Business business = new Business( 阅读全文
posted @ 2019-10-20 15:35 踏月而来 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2019-10-20 14:08 踏月而来 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 退出线程主要的思路是用一个标志位或者是使用线程的中断方法 下面的例子是可以确保调用shutdown()方法,无论线程是否在休眠中,线程都会退出 阅读全文
posted @ 2019-10-20 12:29 踏月而来 阅读(1013) 评论(1) 推荐(0) 编辑
摘要: 一、线程状态 NEW 新new出来,还没有执行start方法 RUNNABLE 可运行状态,或者在执行,或者在等待CPU分配时间 BLOCKED 当线程调用wait方法后,线程就进入了阻塞状态,等待其他的线程调用notify方法,将当前线程唤醒,然后去争抢锁,进入可运行状态 WAITING 等待状态 阅读全文
posted @ 2019-10-16 22:35 踏月而来 阅读(144) 评论(0) 推荐(0) 编辑
摘要: /** * 完全二叉树:要么是满二叉树,要么是在满二叉树的基础上,最后一层的节点是从左到右是依次添加的 * 采用按层遍历的方式判断是不是完全二叉树 */ public class IsCompleteTree { public static void main(String[] args) { Node head = new Node(1); head.left = new Node(2); he 阅读全文
posted @ 2019-10-15 21:34 踏月而来 阅读(397) 评论(0) 推荐(0) 编辑
摘要: js2048小游戏,方格是怎么合并和移动的 index.html 2048.css 2048.js 还要在index.html中引入jquery.js。 阅读全文
posted @ 2019-10-15 15:50 踏月而来 阅读(223) 评论(0) 推荐(0) 编辑
摘要: public class BreakTest { public static void main(String[] args) { // 跳出多层循环,用到了lable标签,给循环定义一个lable标签,这里给内层循环定义了一个lable2标签,lable2的名字可以随便起, // 这里执行了break lable2;后表示跳出了内层循环,代码还会继续执行到 System.out.println( 阅读全文
posted @ 2019-10-15 09:49 踏月而来 阅读(212) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 24 下一页