要求:给定一个数组,找出符合【x, x+1,x,x-1】这样循环的最大交替数组长度。 思路:用两层while循环,第一个while用来找到符合这个循环的开头位置,第二个用来找到该循环的结束位置,并比较一下max进行记录。 易错:要进行减一,因为上一个字符串最后一个结束的数字可能是下一个字符串的开头。 class Solution:def alternatingSubarray(self, n
1、wait notify 版 public class SyncWaitNotify {//打印标识:1打印a,2打印b,3打印cprivate int flag;//每个字母的打印次数private int loopNumber;//构造方法public SyncWaitNotify(int flag, int loopNumber) {this.flag = flag;this.loopN
今天来练习一下synchronized 简单来利用synchronized实现一个字符串的交替打印 主要的实现设置一个全局的变量state,线程执行通过不断累加state,根据state对三取余的结果来判断该线程是否继续执行还是进入等待。并通过synchronized锁住一个共享变量lock来进行上锁。 最后创建三个线程并让其进入就绪态。 代码实现: public class Test
1、synchronized和Object 线程应当绑定标志以便进行识别。使用object.wait()对抢到锁不满足要求的线程进行休眠,这样满足要求的线程一定能抢到锁,执行完操作后再唤醒其他线程。保存的打印次数和锁都应当只有一份,这样才能确保线程之间变量的统一。 public class PrintThread {public int times;public Object o;publi