最长回文子串
摘要:问题描述:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。 解题思路: 代码如下: class Solution: def longestPalindrome(self, s:
阅读全文
volatile(一)
摘要:在并发编程中,我们通常会遇到以下三个问题:原子性问题,可见性问题,有序性问题。我们先看具体看一下这三个概念: 1.原子性 原子性:即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。举个例子, 假若一个线程执行到这个语句时,我暂且假设为一个32位的变量赋值包括两个过
阅读全文
synchronized(九)
摘要:在Java中是有常量池缓存的功能的,就是说如果我先声明了一个String str1 = “a”; 再声明一个一样的字符串的时候,取值是从原地址去取的,也就是说是同一个对象。这也就导致了在锁字符串对象的时候,可以会取得意料之外的结果(字符串一样会取得相同锁)。 package com.bjsxt.ba
阅读全文
synchronized(八)
摘要:package com.bjsxt.base.sync006;/** * 同一对象属性的修改不会影响锁的情况 * @author alienware * */public class ModifyLock { private String name ; private int age ; publi
阅读全文
synchronized(七)
摘要:package com.bjsxt.base.sync006; /** * 死锁问题,在设计程序时就应该避免双方相互持有对方的锁的情况 * @author alienware * */public class DeadLock implements Runnable{ private String
阅读全文
synchronized(六)
摘要:package com.bjsxt.base.sync006;/** * 锁对象的改变问题 * @author alienware * */public class ChangeLock { private String lock = "lock"; private void method(){ s
阅读全文
synchronized(五)
摘要:package com.bjsxt.base.sync005;/** * synchronized的重入 * @author alienware * */public class SyncDubbo2 { static class Main { public int i = 10; public s
阅读全文
synchronized(四)
摘要:package com.bjsxt.base.sync005;/** * synchronized的重入 * @author alienware * */public class SyncDubbo1 { public synchronized void method1(){ System.out.
阅读全文
synchronized(三)
摘要:package com.bjsxt.base.sync003; /** * 对象锁的同步和异步问题 * @author alienware * */public class MyObject { public synchronized void method1(){ try { System.out
阅读全文
synchronized(二)
摘要:package com.bjsxt.base.sync002;/** * 关键字synchronized取得的锁都是对象锁,而不是把一段代码(方法)当做锁, * 所以代码中哪个线程先执行synchronized关键字的方法,哪个线程就持有该方法所属对象的锁(Lock), * * 在静态方法上加syn
阅读全文
synchronized(一)
摘要:/** * 线程安全概念:当多个线程访问某一个类(对象或方法)时,这个对象始终都能表现出正确的行为,那么这个类(对象或方法)就是线程安全的。 * synchronized:可以在任意对象及方法上加锁,而加锁的这段代码称为"互斥区"或"临界区" * @author alienware * */publ
阅读全文