function deepAssign(...param) {
    let result = Object.assign({}, ...param);
    for (let item of param) {
        for (let [idx, val] of Object.entries(item)) {
            if (typeof val === 'object') {
                result[idx] = deepAssign(result[idx], val);
    return result;
var x = {
        a1: {
            a1_1: 1.1,
            a1_2: 1.2
        ,a2: {
            a2_1: 2.1,
            a2_2: 2.2
, y = {
        a1: {
            a1_3: 1.3
        b1: {
            b1_1: 1
        b2: 555
    c: 'ccc'
, z = {
        b1: {
            xx: 1,
            yy: 2,
            ccc: {
                abb: '12242',
                bbb: [1,2,3]
        a55: {
            xx: 33
console.log(deepAssign(x, y, z));
JAVA 线程同步 java的线程同步

一、线程同步介绍  同步:就是协同步调,按照预定的先后顺序执行。比如:你说完我再说。  线程同步:访问同一个共享资源的时候多个线程能够保证数据的安全性、一致性。二、JAVA中实现线程同步的方法  实现进程同步的方法是在共享竞争的资源上加锁,保证对资源的独占性。JAVA中通过关键字synchronized实现同步。看下面的例子 package cn.edu.sdust.AsyTest;