Unsafe.putOrderedInt源码学习_会灰翔的灰机的博客-程序员宅基地

技术标签: java  并发包  多线程  juc  Unsafe  并发编程  

引言

为什么突然要学习这个方法呢?看下我们上一篇翻译的文章就明白了,真的不是很好理解,不是立即可见那是顺序的吗?看方法名称Ordered应该是顺序的,那么究竟是不是呢?带着疑问去写个代码验证下吧

   /***
    * 设置对象指定下标处的Integer值为给定值。这是一个顺序的或者懒惰版本的
    * putIntVolatile(Object,long,int)方法,它不保证值的改变对其他线程立即可见。
    * 它仅对volatile修饰的Integer类型字段有用,并且适用于期望意外修改的场景。
    *
    * @param obj the object containing the field to modify.
    * @param offset the offset of the integer field within <code>obj</code>.
    * @param value the new value of the field.
    * @see #putIntVolatile(Object,long,int)
    */
   public native void putOrderedInt(Object obj, long offset, int value);

问题

putOrderedInt方法执行后的值,对于多线程读取是否存在由于懒惰顺序写入而产生较为明显的延迟?

验证

putOrderedInt方法的使用场景可以通过AtomicInteger.lazySet方法验证,该方法的底层实现就是直接调用的Unsafe.putOrderedInt方法
对比下二者区别吧

实战代码1-正常的原子递增方法

正常的原子方法

package com.gallant.test;

import java.util.ArrayList;
import java.util.List;
import java.util.Vector;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.CyclicBarrier;
import java.util.concurrent.atomic.AtomicInteger;

/**
 * @author : 会灰翔的灰机
 * @date : 2021/2/8
 */
public class AtomicIntegerTest {
    

  private static final AtomicInteger AI = new AtomicInteger();
  private static final CyclicBarrier CB = new CyclicBarrier(1000);
  private static final CountDownLatch CDL = new CountDownLatch(1000);
  private static final List<String> READ_RESULT = new Vector<>();
  private static final List<String> WRITE_RESULT = new Vector<>();

  public static void main(String[] args) throws InterruptedException {
    
    for (int i = 0; i < 500; i++) {
    
      // 500个线程并发读取
      new MyReadTask(CB, CDL).start();
      // 500个线程并发写入
      new MyWriteTask(CB, CDL, i + 1).start();
    }
    // 等待所有线程执行结束
    CDL.await();
    System.out.println(READ_RESULT.size() + "," + WRITE_RESULT.size());
    System.out.println("read:" + READ_RESULT);
    System.out.println("write:" + WRITE_RESULT);
    List<String> all = new ArrayList<>(READ_RESULT);
    all.addAll(WRITE_RESULT);
    all.sort((o1, o2) -> (int) (Long.parseLong(o1.split("-")[0]) - Long.parseLong(o2.split("-")[0])));
    System.out.println("all:"+all);
  }

  private static class MyReadTask extends Thread {
    

    private CyclicBarrier cb;
    private CountDownLatch cdl;

    public MyReadTask(CyclicBarrier cb, CountDownLatch cdl) {
    
      this.cb = cb;
      this.cdl = cdl;
    }

    @Override
    public void run() {
    
      try {
    
        cb.await();
      } catch (Exception e) {
    
        e.printStackTrace();
      }
      READ_RESULT.add(System.nanoTime() + "-READ-" + AI.get());
      cdl.countDown();
    }
  }

  private static class MyWriteTask extends Thread {
    

    private CyclicBarrier cb;
    private CountDownLatch cdl;
    private int value;

    public MyWriteTask(CyclicBarrier cb, CountDownLatch cdl, int value) {
    
      this.cb = cb;
      this.cdl = cdl;
      this.value = value;
    }

    @Override
    public void run() {
    
      try {
    
        cb.await();
      } catch (Exception e) {
    
        e.printStackTrace();
      }
      try {
    
        AI.set(value);
        WRITE_RESULT.add(System.nanoTime() + "-WRITE-" + value);
      } catch (Exception e) {
    
        e.printStackTrace();
      } finally {
    
        cdl.countDown();
      }
    }
  }

}

输出结果1

500,500
read:[37418348117424-READ-1, 37418348149265-READ-1, 37418348203245-READ-2, 37418348500525-READ-3, 37418348540971-READ-4, 37418348607019-READ-5, 37418348666434-READ-6, 37418348784937-READ-7, 37418348873221-READ-8, 37418348963301-READ-9, 37418349046461-READ-10, 37418349081642-READ-11, 37418349181299-READ-12, 37418349250838-READ-13, 37418349355393-READ-14, 37418349439853-READ-15, 37418349522035-READ-16, 37418349597968-READ-17, 37418349669923-READ-18, 37418351977027-READ-19, 37418352029549-READ-20, 37418352163782-READ-21, 37418352224127-READ-22, 37418352302091-READ-23, 37418352386153-READ-24, 37418352481740-READ-25, 37418352525785-READ-26, 37418352642876-READ-27, 37418352726447-READ-28, 37418352839517-READ-29, 37418352935671-READ-30, 37418353013289-READ-31, 37418353092122-READ-32, 37418353190630-READ-33, 37418353271079-READ-34, 37418353356165-READ-35, 37418353419309-READ-36, 37418353490784-READ-37, 37418353563578-READ-38, 37418353622025-READ-39, 37418353700846-READ-40, 37418353789667-READ-41, 37418353870625-READ-42, 37418355892537-READ-44, 37418355915846-READ-44, 37418356045957-READ-45, 37418356104968-READ-46, 37418356182554-READ-47, 37418356260042-READ-48, 37418356336653-READ-49, 37418356424499-READ-50, 37418356481018-READ-51, 37418356530367-READ-52, 37418356579639-READ-53, 37418356654227-READ-54, 37418356729529-READ-55, 37418356791197-READ-56, 37418356840022-READ-57, 37418356897018-READ-58, 37418357013647-READ-59, 37418357057675-READ-60, 37418357104647-READ-61, 37418357196099-READ-62, 37418357275880-READ-64, 37418357389481-READ-64, 37418357494913-READ-65, 37418357536571-READ-66, 37418357643856-READ-67, 37418361252083-READ-69, 37418361287337-READ-69, 37418361447873-READ-70, 37418361502845-READ-71, 37418361560768-READ-72, 37418361663122-READ-73, 37418361773707-READ-74, 37418361850349-READ-75, 37418361893673-READ-76, 37418361945785-READ-77, 37418362080682-READ-78, 37418362119685-READ-79, 37418362216477-READ-80, 37418362287843-READ-81, 37418362384740-READ-82, 37418362476909-READ-83, 37418362521348-READ-84, 37418362578873-READ-85, 37418362718900-READ-86, 37418362779116-READ-87, 37418362874269-READ-88, 37418362938114-READ-89, 37418363001809-READ-90, 37418363074954-READ-91, 37418363113870-READ-92, 37418366201957-READ-93, 37418366315918-READ-94, 37418366408997-READ-95, 37418366495805-READ-96, 37418366561260-READ-97, 37418366650094-READ-98, 37418366696816-READ-99, 37418366797141-READ-100, 37418366875189-READ-101, 37418366949542-READ-102, 37418366999402-READ-103, 37418367078887-READ-104, 37418367128444-READ-105, 37418367244241-READ-106, 37418367343250-READ-107, 37418367406178-READ-108, 37418367479135-READ-109, 37418367574911-READ-110, 37418367658229-READ-111, 37418367737633-READ-112, 37418367775058-READ-113, 37418367818229-READ-114, 37418367931881-READ-115, 37418368011833-READ-116, 37418368071602-READ-117, 37418370454972-READ-119, 37418370485514-READ-119, 37418370537589-READ-120, 37418370641302-READ-121, 37418370704079-READ-122, 37418370744747-READ-123, 37418370789045-READ-124, 37418370893072-READ-125, 37418370969980-READ-126, 37418371050620-READ-127, 37418371122992-READ-128, 37418371194167-READ-129, 37418371231750-READ-130, 37418371289928-READ-131, 37418371358318-READ-132, 37418371438436-READ-133, 37418371482459-READ-134, 37418371553888-READ-135, 37418371632075-READ-136, 37418371682101-READ-137, 37418371775652-READ-138, 37418371857333-READ-139, 37418371942716-READ-140, 37418372002128-READ-141, 37418372064135-READ-142, 37418374176581-READ-144, 37418374195427-READ-144, 37418374314637-READ-145, 37418374395214-READ-146, 37418374449736-READ-147, 37418374510806-READ-148, 37418374573360-READ-149, 37418374613687-READ-150, 37418374666530-READ-151, 37418374782078-READ-152, 37418374854622-READ-153, 37418374938316-READ-154, 37418375025930-READ-155, 37418375099461-READ-156, 37418375136624-READ-157, 37418375174904-READ-158, 37418375256869-READ-159, 37418375292126-READ-160, 37418375455655-READ-161, 37418375506441-READ-162, 37418375601902-READ-163, 37418375661821-READ-164, 37418375729736-READ-165, 37418375774127-READ-166, 37418375823493-READ-167, 37418377206052-READ-169, 37418377270597-READ-169, 37418377313363-READ-170, 37418377361840-READ-171, 37418377426027-READ-172, 37418377510846-READ-173, 37418377568053-READ-174, 37418377638857-READ-175, 37418377702849-READ-176, 37418377778615-READ-177, 37418377822579-READ-178, 37418377887342-READ-179, 37418377942967-READ-180, 37418377989353-READ-181, 37418378058294-READ-182, 37418378111083-READ-183, 37418378182039-READ-184, 37418378257174-READ-185, 37418378310619-READ-186, 37418378382106-READ-187, 37418378483150-READ-188, 37418378553864-READ-189, 37418378608696-READ-190, 37418378678750-READ-192, 37418378711050-READ-192, 37418380428254-READ-194, 37418380446486-READ-194, 37418380558953-READ-195, 37418380607711-READ-196, 37418380675139-READ-197, 37418380731515-READ-198, 37418380791912-READ-199, 37418380879971-READ-200, 37418380974784-READ-201, 37418381000483-READ-202, 37418381079023-READ-204, 37418381095373-READ-204, 37418381227231-READ-205, 37418381293831-READ-206, 37418381352500-READ-207, 37418381393788-READ-208, 37418381448252-READ-209, 37418381550511-READ-210, 37418381617491-READ-211, 37418381666589-READ-212, 37418381737943-READ-213, 37418381808922-READ-214, 37418381837707-READ-215, 37418381928795-READ-216, 37418381995606-READ-217, 37418383255465-READ-219, 37418383264881-READ-219, 37418383317236-READ-220, 37418383369394-READ-221, 37418383427534-READ-222, 37418383465167-READ-223, 37418383566447-READ-224, 37418383614367-READ-225, 37418383703032-READ-226, 37418383770641-READ-227, 37418383800781-READ-228, 37418383837463-READ-229, 37418383946366-READ-230, 37418383987953-READ-231, 37418384040724-READ-232, 37418384113518-READ-233, 37418384162297-READ-234, 37418384253597-READ-235, 37418384372805-READ-237, 37418384386818-READ-237, 37418384460525-READ-238, 37418384579929-READ-239, 37418384609238-READ-240, 37418384695238-READ-242, 37418384720501-READ-242, 37418386383809-READ-244, 37418386392214-READ-244, 37418386412483-READ-245, 37418386545843-READ-246, 37418386601968-READ-247, 37418386632652-READ-248, 37418386697272-READ-249, 37418386751911-READ-250, 37418386787417-READ-251, 37418386844147-READ-252, 37418386901710-READ-253, 37418386970771-READ-254, 37418387024217-READ-255, 37418387056262-READ-256, 37418387071606-READ-256, 37418387207775-READ-258, 37418387256133-READ-259, 37418387321569-READ-260, 37418387380088-READ-261, 37418387413267-READ-262, 37418387471067-READ-263, 37418387499089-READ-264, 37418387544779-READ-265, 37418387570840-READ-266, 37418387634647-READ-267, 37418388641764-READ-269, 37418388663532-READ-269, 37418388691995-READ-270, 37418388770952-READ-271, 37418388829103-READ-272, 37418388869188-READ-273, 37418388934283-READ-274, 37418388979368-READ-275, 37418389031312-READ-277, 37418389060201-READ-277, 37418389095854-READ-278, 37418389165299-READ-279, 37418389195096-READ-280, 37418389227007-READ-281, 37418389267666-READ-282, 37418389348088-READ-283, 37418389390250-READ-284, 37418389418528-READ-285, 37418389470948-READ-286, 37418389519314-READ-288, 37418389534782-READ-288, 37418389558866-READ-289, 37418389632991-READ-290, 37418389667831-READ-291, 37418389727685-READ-292, 37418389770049-READ-293, 37418390766160-READ-295, 37418390798170-READ-295, 37418390846095-READ-296, 37418390908863-READ-297, 37418390950384-READ-298, 37418391007075-READ-299, 37418391051248-READ-300, 37418391120044-READ-302, 37418391138720-READ-302, 37418391177672-READ-303, 37418391232936-READ-304, 37418391290981-READ-306, 37418391309056-READ-306, 37418391374085-READ-307, 37418391401900-READ-308, 37418391499726-READ-309, 37418391539056-READ-310, 37418391573384-READ-311, 37418391628764-READ-312, 37418391665016-READ-313, 37418391708734-READ-314, 37418391758542-READ-315, 37418391781739-READ-316, 37418391809207-READ-317, 37418391869461-READ-318, 37418392714606-READ-320, 37418392718109-READ-320, 37418392756917-READ-321, 37418392845199-READ-322, 37418392873863-READ-323, 37418392910815-READ-324, 37418392968397-READ-325, 37418392998101-READ-326, 37418393055761-READ-327, 37418393080085-READ-328, 37418393125108-READ-329, 37418393196654-READ-330, 37418393245866-READ-331, 37418393297113-READ-332, 37418393348219-READ-333, 37418393397133-READ-335, 37418393433802-READ-335, 37418393482130-READ-336, 37418393521508-READ-337, 37418393568586-READ-338, 37418393602322-READ-339, 37418393657749-READ-340, 37418393701468-READ-341, 37418393755075-READ-342, 37418393809018-READ-344, 37418393831962-READ-344, 37418393883967-READ-345, 37418393919478-READ-346, 37418393965145-READ-347, 37418394025935-READ-348, 37418394066223-READ-349, 37418394091767-READ-350, 37418394114310-READ-351, 37418394146397-READ-352, 37418394218843-READ-353, 37418394237522-READ-354, 37418394304942-READ-355, 37418394347306-READ-356, 37418394388711-READ-357, 37418394411782-READ-358, 37418394471233-READ-360, 37418394473531-READ-360, 37418394525775-READ-362, 37418394549612-READ-362, 37418394573877-READ-363, 37418394609129-READ-364, 37418394636939-READ-365, 37418394679061-READ-366, 37418394730350-READ-368, 37418394742069-READ-369, 37418394802165-READ-370, 37418394823628-READ-370, 37418394904253-READ-371, 37418394933803-READ-373, 37418394967230-READ-373, 37418395014424-READ-374, 37418395044632-READ-375, 37418395085099-READ-376, 37418395129434-READ-377, 37418395154536-READ-378, 37418395214499-READ-379, 37418395257981-READ-380, 37418395290316-READ-381, 37418395341776-READ-383, 37418395410077-READ-384, 37418395409662-READ-384, 37418395453130-READ-385, 37418395537686-READ-387, 37418395541917-READ-387, 37418395567735-READ-388, 37418395636150-READ-391, 37418395676982-READ-391, 37418395707161-READ-392, 37418395759039-READ-393, 37418395782689-READ-393, 37418395828292-READ-394, 37418395883659-READ-395, 37418395913769-READ-396, 37418395958052-READ-397, 37418395995899-READ-398, 37418396046550-READ-400, 37418396067966-READ-400, 37418396125603-READ-401, 37418396151909-READ-402, 37418396187556-READ-403, 37418396219680-READ-404, 37418396245881-READ-405, 37418396272123-READ-406, 37418396311273-READ-407, 37418396339736-READ-408, 37418396375686-READ-409, 37418396409657-READ-410, 37418396434901-READ-411, 37418396468385-READ-412, 37418396504940-READ-414, 37418396532296-READ-415, 37418396553122-READ-415, 37418396587059-READ-416, 37418396619782-READ-417, 37418396658524-READ-418, 37418396691000-READ-419, 37418396723465-READ-420, 37418396748139-READ-421, 37418396775512-READ-422, 37418396820015-READ-423, 37418396850442-READ-424, 37418396876427-READ-425, 37418396899118-READ-426, 37418396926595-READ-427, 37418396969010-READ-429, 37418396983862-READ-430, 37418397018680-READ-430, 37418397042724-READ-431, 37418397067210-READ-432, 37418397108207-READ-433, 37418397136102-READ-434, 37418397156286-READ-435, 37418397188459-READ-436, 37418397210968-READ-437, 37418397247260-READ-438, 37418397267655-READ-439, 37418397296455-READ-440, 37418397328169-READ-441, 37418397351019-READ-442, 37418397395456-READ-444, 37418397403067-READ-444, 37418397427857-READ-445, 37418397466277-READ-447, 37418397496150-READ-447, 37418397524389-READ-448, 37418397551801-READ-449, 37418397598963-READ-451, 37418397639055-READ-451, 37418397670920-READ-453, 37418397710917-READ-454, 37418397724103-READ-455, 37418397758010-READ-455, 37418397785797-READ-456, 37418397810519-READ-457, 37418397855587-READ-458, 37418397884255-READ-460, 37418397907130-READ-460, 37418397933072-READ-461, 37418397959576-READ-463, 37418397989667-READ-464, 37418398009314-READ-464, 37418398052916-READ-465, 37418398083029-READ-466, 37418398128029-READ-467, 37418398155968-READ-469, 37418398198712-READ-470, 37418398211307-READ-470, 37418398238732-READ-471, 37418398268343-READ-472, 37418398300019-READ-473, 37418398338081-READ-473, 37418398372165-READ-475, 37418398396941-READ-476, 37418398427229-READ-477, 37418398445830-READ-478, 37418398466810-READ-479, 37418398510059-READ-480, 37418398539032-READ-481, 37418398561448-READ-482, 37418398609735-READ-483, 37418398654564-READ-484, 37418398676613-READ-485, 37418398731128-READ-487, 37418398738830-READ-488, 37418398754221-READ-488, 37418398789694-READ-489, 37418398812707-READ-490, 37418398853720-READ-492, 37418398874209-READ-492, 37418398899496-READ-494, 37418398918010-READ-494, 37418398937496-READ-495, 37418398964380-READ-497, 37418398993030-READ-497, 37418399021633-READ-498, 37418399041718-READ-499]
write:[37418348135968-WRITE-1, 37418348117314-WRITE-500, 37418348174096-WRITE-2, 37418348395709-WRITE-3, 37418348516050-WRITE-4, 37418348585527-WRITE-5, 37418348642421-WRITE-6, 37418348746958-WRITE-7, 37418348805566-WRITE-8, 37418348890010-WRITE-9, 37418348978755-WRITE-10, 37418349066244-WRITE-11, 37418349146423-WRITE-12, 37418349204502-WRITE-13, 37418349278522-WRITE-14, 37418349376423-WRITE-15, 37418349460756-WRITE-16, 37418349539047-WRITE-17, 37418349615432-WRITE-18, 37418351988143-WRITE-19, 37418351989147-WRITE-20, 37418352056334-WRITE-21, 37418352192341-WRITE-22, 37418352269549-WRITE-23, 37418352367237-WRITE-24, 37418352444913-WRITE-25, 37418352503167-WRITE-26, 37418352549775-WRITE-27, 37418352658220-WRITE-28, 37418352747740-WRITE-29, 37418352847168-WRITE-30, 37418352995924-WRITE-31, 37418353077060-WRITE-32, 37418353170977-WRITE-33, 37418353249670-WRITE-34, 37418353333069-WRITE-35, 37418353388691-WRITE-36, 37418353474215-WRITE-37, 37418353543375-WRITE-38, 37418353590870-WRITE-39, 37418353685093-WRITE-40, 37418353773934-WRITE-41, 37418353853401-WRITE-42, 37418353942153-WRITE-43, 37418355894715-WRITE-44, 37418356004590-WRITE-45, 37418356076359-WRITE-46, 37418356128391-WRITE-47, 37418356201985-WRITE-48, 37418356311012-WRITE-49, 37418356360970-WRITE-50, 37418356444708-WRITE-51, 37418356505716-WRITE-52, 37418356559287-WRITE-53, 37418356634360-WRITE-54, 37418356675664-WRITE-55, 37418356807251-WRITE-57, 37418356867704-WRITE-58, 37418356947918-WRITE-59, 37418357031791-WRITE-60, 37418357087620-WRITE-61, 37418357174400-WRITE-62, 37418357219442-WRITE-63, 37418357295132-WRITE-64, 37418357406505-WRITE-65, 37418357517966-WRITE-66, 37418357591698-WRITE-67, 37418357669578-WRITE-68, 37418361239363-WRITE-56, 37418361256670-WRITE-69, 37418361415474-WRITE-70, 37418361472273-WRITE-71, 37418361540114-WRITE-72, 37418361641854-WRITE-73, 37418361753376-WRITE-74, 37418361831026-WRITE-75, 37418361872511-WRITE-76, 37418361922005-WRITE-77, 37418362055881-WRITE-78, 37418362097321-WRITE-79, 37418362190572-WRITE-80, 37418362268775-WRITE-81, 37418362366651-WRITE-82, 37418362454173-WRITE-83, 37418362501677-WRITE-84, 37418362551045-WRITE-85, 37418362650289-WRITE-86, 37418362758731-WRITE-87, 37418362847086-WRITE-88, 37418362906252-WRITE-89, 37418362969495-WRITE-90, 37418363026245-WRITE-91, 37418363098220-WRITE-92, 37418363141578-WRITE-93, 37418366276815-WRITE-94, 37418366383589-WRITE-95, 37418366466656-WRITE-96, 37418366534495-WRITE-97, 37418366584769-WRITE-98, 37418366675529-WRITE-99, 37418366768856-WRITE-100, 37418366854897-WRITE-101, 37418366894796-WRITE-102, 37418366975650-WRITE-103, 37418367054272-WRITE-104, 37418367102339-WRITE-105, 37418367150924-WRITE-106, 37418367265218-WRITE-107, 37418367369311-WRITE-108, 37418367425903-WRITE-109, 37418367498185-WRITE-110, 37418367594365-WRITE-111, 37418367714940-WRITE-112, 37418367754047-WRITE-113, 37418367801260-WRITE-114, 37418367911573-WRITE-115, 37418367952936-WRITE-116, 37418368041689-WRITE-117, 37418368121436-WRITE-118, 37418370458231-WRITE-119, 37418370511427-WRITE-120, 37418370580797-WRITE-121, 37418370657102-WRITE-122, 37418370735964-WRITE-123, 37418370778456-WRITE-124, 37418370835137-WRITE-125, 37418370948035-WRITE-126, 37418371031772-WRITE-127, 37418371104768-WRITE-128, 37418371169079-WRITE-129, 37418371208670-WRITE-130, 37418371263299-WRITE-131, 37418371318935-WRITE-132, 37418371393140-WRITE-133, 37418371461325-WRITE-134, 37418371538363-WRITE-135, 37418371615936-WRITE-136, 37418371666920-WRITE-137, 37418371735065-WRITE-138, 37418371808379-WRITE-139, 37418371925214-WRITE-140, 37418371966190-WRITE-141, 37418372029887-WRITE-142, 37418372094806-WRITE-143, 37418374175049-WRITE-144, 37418374222816-WRITE-145, 37418374337035-WRITE-146, 37418374409025-WRITE-147, 37418374468724-WRITE-148, 37418374526382-WRITE-149, 37418374594713-WRITE-150, 37418374642616-WRITE-151, 37418374713594-WRITE-152, 37418374834481-WRITE-153, 37418374905571-WRITE-154, 37418374981929-WRITE-155, 37418375040990-WRITE-156, 37418375115539-WRITE-157, 37418375159933-WRITE-158, 37418375202026-WRITE-159, 37418375274903-WRITE-160, 37418375401871-WRITE-161, 37418375467876-WRITE-162, 37418375557488-WRITE-163, 37418375618689-WRITE-164, 37418375685332-WRITE-165, 37418375747980-WRITE-166, 37418375802899-WRITE-167, 37418375846918-WRITE-168, 37418377209816-WRITE-169, 37418377286933-WRITE-170, 37418377332126-WRITE-171, 37418377378525-WRITE-172, 37418377448230-WRITE-173, 37418377527719-WRITE-174, 37418377624473-WRITE-175, 37418377688241-WRITE-176, 37418377755441-WRITE-177, 37418377787978-WRITE-178, 37418377843245-WRITE-179, 37418377927751-WRITE-180, 37418377960649-WRITE-181, 37418378045133-WRITE-182, 37418378080077-WRITE-183, 37418378124059-WRITE-184, 37418378208319-WRITE-185, 37418378284577-WRITE-186, 37418378364741-WRITE-187, 37418378430450-WRITE-188, 37418378495650-WRITE-189, 37418378567923-WRITE-190, 37418378625621-WRITE-191, 37418378696034-WRITE-192, 37418378805264-WRITE-193, 37418380430105-WRITE-194, 37418380498672-WRITE-195, 37418380574525-WRITE-196, 37418380653645-WRITE-197, 37418380699590-WRITE-198, 37418380762458-WRITE-199, 37418380842150-WRITE-200, 37418380927490-WRITE-201, 37418380984157-WRITE-202, 37418381034924-WRITE-203, 37418381101617-WRITE-204, 37418381170274-WRITE-205, 37418381235823-WRITE-206, 37418381303389-WRITE-207, 37418381373631-WRITE-208, 37418381418227-WRITE-209, 37418381498968-WRITE-210, 37418381596296-WRITE-211, 37418381639356-WRITE-212, 37418381700928-WRITE-213, 37418381774608-WRITE-214, 37418381830789-WRITE-215, 37418381906667-WRITE-216, 37418381976711-WRITE-217, 37418382040237-WRITE-218, 37418383283969-WRITE-219, 37418383342772-WRITE-221, 37418383340947-WRITE-220, 37418383385951-WRITE-222, 37418383451969-WRITE-223, 37418383544059-WRITE-224, 37418383609680-WRITE-225, 37418383635242-WRITE-226, 37418383719903-WRITE-227, 37418383782971-WRITE-228, 37418383819857-WRITE-229, 37418383905102-WRITE-230, 37418383973897-WRITE-231, 37418384027361-WRITE-232, 37418384063558-WRITE-233, 37418384130874-WRITE-234, 37418384238137-WRITE-235, 37418384280629-WRITE-236, 37418384376836-WRITE-237, 37418384473276-WRITE-238, 37418384573230-WRITE-239, 37418384599253-WRITE-240, 37418384642015-WRITE-241, 37418384701222-WRITE-242, 37418384741750-WRITE-243, 37418386389462-WRITE-244, 37418386397202-WRITE-245, 37418386485903-WRITE-246, 37418386563738-WRITE-247, 37418386613353-WRITE-248, 37418386672235-WRITE-249, 37418386707742-WRITE-250, 37418386762803-WRITE-251, 37418386830289-WRITE-252, 37418386883143-WRITE-253, 37418386928150-WRITE-254, 37418387007569-WRITE-255, 37418387037943-WRITE-256, 37418387089501-WRITE-257, 37418387167741-WRITE-258, 37418387247113-WRITE-259, 37418387284108-WRITE-260, 37418387347348-WRITE-261, 37418387394133-WRITE-262, 37418387430939-WRITE-263, 37418387485063-WRITE-264, 37418387530272-WRITE-265, 37418387559963-WRITE-266, 37418387605651-WRITE-267, 37418387650907-WRITE-268, 37418388646553-WRITE-269, 37418388681366-WRITE-270, 37418388759593-WRITE-271, 37418388807623-WRITE-272, 37418388852941-WRITE-273, 37418388901174-WRITE-274, 37418388946643-WRITE-275, 37418388993682-WRITE-276, 37418389015981-WRITE-277, 37418389078569-WRITE-278, 37418389129114-WRITE-279, 37418389182346-WRITE-280, 37418389210109-WRITE-281, 37418389245755-WRITE-282, 37418389330491-WRITE-283, 37418389367066-WRITE-284, 37418389399785-WRITE-285, 37418389430267-WRITE-286, 37418389489826-WRITE-287, 37418389507934-WRITE-288, 37418389544323-WRITE-289, 37418389624512-WRITE-290, 37418389652151-WRITE-291, 37418389707718-WRITE-292, 37418389744115-WRITE-293, 37418390750806-WRITE-294, 37418390761572-WRITE-295, 37418390827894-WRITE-296, 37418390858690-WRITE-297, 37418390937943-WRITE-298, 37418390982048-WRITE-299, 37418391019390-WRITE-300, 37418391067816-WRITE-301, 37418391116735-WRITE-302, 37418391162257-WRITE-303, 37418391188150-WRITE-304, 37418391247867-WRITE-305, 37418391285465-WRITE-306, 37418391351289-WRITE-307, 37418391386029-WRITE-308, 37418391469168-WRITE-309, 37418391509872-WRITE-310, 37418391551522-WRITE-311, 37418391588822-WRITE-312, 37418391654637-WRITE-313, 37418391695780-WRITE-314, 37418391729647-WRITE-315, 37418391770492-WRITE-316, 37418391794775-WRITE-317, 37418391861660-WRITE-318, 37418391887370-WRITE-319, 37418392723206-WRITE-320, 37418392734362-WRITE-321, 37418392795052-WRITE-322, 37418392865001-WRITE-323, 37418392900600-WRITE-324, 37418392936770-WRITE-325, 37418392984594-WRITE-326, 37418393013430-WRITE-327, 37418393067509-WRITE-328, 37418393113680-WRITE-329, 37418393160419-WRITE-330, 37418393234615-WRITE-331, 37418393284968-WRITE-332, 37418393303855-WRITE-333, 37418393359277-WRITE-334, 37418393399107-WRITE-335, 37418393447011-WRITE-336, 37418393493767-WRITE-337, 37418393543334-WRITE-338, 37418393584101-WRITE-339, 37418393639075-WRITE-340, 37418393703561-WRITE-341, 37418393719136-WRITE-342, 37418393784699-WRITE-343, 37418393818274-WRITE-344, 37418393851073-WRITE-345, 37418393894197-WRITE-346, 37418393959211-WRITE-347, 37418393989445-WRITE-348, 37418394047965-WRITE-349, 37418394078104-WRITE-350, 37418394124089-WRITE-351, 37418394134406-WRITE-352, 37418394216686-WRITE-353, 37418394227763-WRITE-354, 37418394293775-WRITE-355, 37418394335039-WRITE-356, 37418394354843-WRITE-357, 37418394396829-WRITE-358, 37418394424100-WRITE-359, 37418394453849-WRITE-360, 37418394486314-WRITE-361, 37418394542242-WRITE-362, 37418394559560-WRITE-363, 37418394582306-WRITE-364, 37418394619266-WRITE-365, 37418394658858-WRITE-366, 37418394703934-WRITE-367, 37418394733304-WRITE-368, 37418394769367-WRITE-369, 37418394809866-WRITE-370, 37418394832784-WRITE-371, 37418394912454-WRITE-372, 37418394950060-WRITE-373, 37418395011198-WRITE-374, 37418395035873-WRITE-375, 37418395072609-WRITE-376, 37418395113589-WRITE-377, 37418395142669-WRITE-378, 37418395168399-WRITE-379, 37418395224637-WRITE-380, 37418395277295-WRITE-381, 37418395329931-WRITE-382, 37418395345415-WRITE-383, 37418395398823-WRITE-384, 37418395468890-WRITE-385, 37418395471083-WRITE-386, 37418395543914-WRITE-387, 37418395548962-WRITE-388, 37418395581505-WRITE-389, 37418395641797-WRITE-390, 37418395685191-WRITE-391, 37418395711868-WRITE-392, 37418395765790-WRITE-393, 37418395812720-WRITE-394, 37418395841566-WRITE-395, 37418395897801-WRITE-396, 37418395974924-WRITE-398, 37418396007951-WRITE-399, 37418396049191-WRITE-400, 37418395944925-WRITE-397, 37418396079304-WRITE-401, 37418396138914-WRITE-402, 37418396172796-WRITE-403, 37418396198043-WRITE-404, 37418396241833-WRITE-405, 37418396254483-WRITE-406, 37418396294127-WRITE-407, 37418396324651-WRITE-408, 37418396349894-WRITE-409, 37418396395616-WRITE-410, 37418396431613-WRITE-411, 37418396456849-WRITE-412, 37418396484351-WRITE-413, 37418396513808-WRITE-414, 37418396534214-WRITE-415, 37418396562404-WRITE-416, 37418396606078-WRITE-417, 37418396631873-WRITE-418, 37418396672840-WRITE-419, 37418396708698-WRITE-420, 37418396734312-WRITE-421, 37418396775786-WRITE-422, 37418396799907-WRITE-423, 37418396832152-WRITE-424, 37418396861131-WRITE-425, 37418396883990-WRITE-426, 37418396908809-WRITE-427, 37418396940272-WRITE-428, 37418396974188-WRITE-429, 37418396995859-WRITE-430, 37418397042724-WRITE-431, 37418397063985-WRITE-432, 37418397075287-WRITE-433, 37418397118501-WRITE-434, 37418397146290-WRITE-435, 37418397173324-WRITE-436, 37418397200183-WRITE-437, 37418397230448-WRITE-438, 37418397258135-WRITE-439, 37418397284603-WRITE-440, 37418397313420-WRITE-441, 37418397340947-WRITE-442, 37418397363893-WRITE-443, 37418397389941-WRITE-444, 37418397416331-WRITE-445, 37418397452947-WRITE-446, 37418397471640-WRITE-447, 37418397508602-WRITE-448, 37418397534039-WRITE-449, 37418397575032-WRITE-450, 37418397598963-WRITE-451, 37418397653664-WRITE-452, 37418397674600-WRITE-453, 37418397705082-WRITE-454, 37418397731582-WRITE-455, 37418397767238-WRITE-456, 37418397806517-WRITE-457, 37418397829272-WRITE-458, 37418397864237-WRITE-459, 37418397898591-WRITE-460, 37418397919723-WRITE-461, 37418397944995-WRITE-462, 37418397964795-WRITE-463, 37418398041339-WRITE-464, 37418398043282-WRITE-465, 37418398072178-WRITE-466, 37418398103060-WRITE-467, 37418398141939-WRITE-468, 37418398163302-WRITE-469, 37418398189452-WRITE-470, 37418398221579-WRITE-471, 37418398255045-WRITE-472, 37418398311996-WRITE-473, 37418398346691-WRITE-474, 37418398359379-WRITE-475, 37418398380107-WRITE-476, 37418398408138-WRITE-477, 37418398435243-WRITE-478, 37418398456410-WRITE-479, 37418398503128-WRITE-480, 37418398522158-WRITE-481, 37418398550231-WRITE-482, 37418398585290-WRITE-483, 37418398651089-WRITE-484, 37418398674387-WRITE-485, 37418398698266-WRITE-486, 37418398722907-WRITE-487, 37418398744964-WRITE-488, 37418398779572-WRITE-489, 37418398806155-WRITE-490, 37418398827748-WRITE-491, 37418398862076-WRITE-492, 37418398882079-WRITE-493, 37418398904120-WRITE-494, 37418398931304-WRITE-495, 37418398972234-WRITE-496, 37418398976996-WRITE-497, 37418399005289-WRITE-498, 37418399034666-WRITE-499]
all:[37418348117314-WRITE-500, 37418348117424-READ-1, 37418348135968-WRITE-1, 37418348149265-READ-1, 37418348174096-WRITE-2, 37418348203245-READ-2, 37418348395709-WRITE-3, 37418348500525-READ-3, 37418348516050-WRITE-4, 37418348540971-READ-4, 37418348585527-WRITE-5, 37418348607019-READ-5, 37418348642421-WRITE-6, 37418348666434-READ-6, 37418348746958-WRITE-7, 37418348784937-READ-7, 37418348805566-WRITE-8, 37418348873221-READ-8, 37418348890010-WRITE-9, 37418348963301-READ-9, 37418348978755-WRITE-10, 37418349046461-READ-10, 37418349066244-WRITE-11, 37418349081642-READ-11, 37418349146423-WRITE-12, 37418349181299-READ-12, 37418349204502-WRITE-13, 37418349250838-READ-13, 37418349278522-WRITE-14, 37418349355393-READ-14, 37418349376423-WRITE-15, 37418349439853-READ-15, 37418349460756-WRITE-16, 37418349522035-READ-16, 37418349539047-WRITE-17, 37418349597968-READ-17, 37418349615432-WRITE-18, 37418349669923-READ-18, 37418351977027-READ-19, 37418351988143-WRITE-19, 37418351989147-WRITE-20, 37418352029549-READ-20, 37418352056334-WRITE-21, 37418352163782-READ-21, 37418352192341-WRITE-22, 37418352224127-READ-22, 37418352269549-WRITE-23, 37418352302091-READ-23, 37418352367237-WRITE-24, 37418352386153-READ-24, 37418352444913-WRITE-25, 37418352481740-READ-25, 37418352503167-WRITE-26, 37418352525785-READ-26, 37418352549775-WRITE-27, 37418352642876-READ-27, 37418352658220-WRITE-28, 37418352726447-READ-28, 37418352747740-WRITE-29, 37418352839517-READ-29, 37418352847168-WRITE-30, 37418352935671-READ-30, 37418352995924-WRITE-31, 37418353013289-READ-31, 37418353077060-WRITE-32, 37418353092122-READ-32, 37418353170977-WRITE-33, 37418353190630-READ-33, 37418353249670-WRITE-34, 37418353271079-READ-34, 37418353333069-WRITE-35, 37418353356165-READ-35, 37418353388691-WRITE-36, 37418353419309-READ-36, 37418353474215-WRITE-37, 37418353490784-READ-37, 37418353543375-WRITE-38, 37418353563578-READ-38, 37418353590870-WRITE-39, 37418353622025-READ-39, 37418353685093-WRITE-40, 37418353700846-READ-40, 37418353773934-WRITE-41, 37418353789667-READ-41, 37418353853401-WRITE-42, 37418353870625-READ-42, 37418353942153-WRITE-43, 37418355892537-READ-44, 37418355894715-WRITE-44, 37418355915846-READ-44, 37418356004590-WRITE-45, 37418356045957-READ-45, 37418356076359-WRITE-46, 37418356104968-READ-46, 37418356128391-WRITE-47, 37418356182554-READ-47, 37418356201985-WRITE-48, 37418356260042-READ-48, 37418356311012-WRITE-49, 37418356336653-READ-49, 37418356360970-WRITE-50, 37418356424499-READ-50, 37418356444708-WRITE-51, 37418356481018-READ-51, 37418356505716-WRITE-52, 37418356530367-READ-52, 37418356559287-WRITE-53, 37418356579639-READ-53, 37418356634360-WRITE-54, 37418356654227-READ-54, 37418356675664-WRITE-55, 37418356729529-READ-55, 37418356791197-READ-56, 37418356807251-WRITE-57, 37418356840022-READ-57, 37418356867704-WRITE-58, 37418356897018-READ-58, 37418356947918-WRITE-59, 37418357013647-READ-59, 37418357031791-WRITE-60, 37418357057675-READ-60, 37418357087620-WRITE-61, 37418357104647-READ-61, 37418357174400-WRITE-62, 37418357196099-READ-62, 37418357219442-WRITE-63, 37418357275880-READ-64, 37418357295132-WRITE-64, 37418357389481-READ-64, 37418357406505-WRITE-65, 37418357494913-READ-65, 37418357517966-WRITE-66, 37418357536571-READ-66, 37418357591698-WRITE-67, 37418357643856-READ-67, 37418357669578-WRITE-68, 37418361239363-WRITE-56, 37418361252083-READ-69, 37418361256670-WRITE-69, 37418361287337-READ-69, 37418361415474-WRITE-70, 37418361447873-READ-70, 37418361472273-WRITE-71, 37418361502845-READ-71, 37418361540114-WRITE-72, 37418361560768-READ-72, 37418361641854-WRITE-73, 37418361663122-READ-73, 37418361753376-WRITE-74, 37418361773707-READ-74, 37418361831026-WRITE-75, 37418361850349-READ-75, 37418361872511-WRITE-76, 37418361893673-READ-76, 37418361922005-WRITE-77, 37418361945785-READ-77, 37418362055881-WRITE-78, 37418362080682-READ-78, 37418362097321-WRITE-79, 37418362119685-READ-79, 37418362190572-WRITE-80, 37418362216477-READ-80, 37418362268775-WRITE-81, 37418362287843-READ-81, 37418362366651-WRITE-82, 37418362384740-READ-82, 37418362454173-WRITE-83, 37418362476909-READ-83, 37418362501677-WRITE-84, 37418362521348-READ-84, 37418362551045-WRITE-85, 37418362578873-READ-85, 37418362650289-WRITE-86, 37418362718900-READ-86, 37418362758731-WRITE-87, 37418362779116-READ-87, 37418362847086-WRITE-88, 37418362874269-READ-88, 37418362906252-WRITE-89, 37418362938114-READ-89, 37418362969495-WRITE-90, 37418363001809-READ-90, 37418363026245-WRITE-91, 37418363074954-READ-91, 37418363098220-WRITE-92, 37418363113870-READ-92, 37418363141578-WRITE-93, 37418366201957-READ-93, 37418366276815-WRITE-94, 37418366315918-READ-94, 37418366383589-WRITE-95, 37418366408997-READ-95, 37418366466656-WRITE-96, 37418366495805-READ-96, 37418366534495-WRITE-97, 37418366561260-READ-97, 37418366584769-WRITE-98, 37418366650094-READ-98, 37418366675529-WRITE-99, 37418366696816-READ-99, 37418366768856-WRITE-100, 37418366797141-READ-100, 37418366854897-WRITE-101, 37418366875189-READ-101, 37418366894796-WRITE-102, 37418366949542-READ-102, 37418366975650-WRITE-103, 37418366999402-READ-103, 37418367054272-WRITE-104, 37418367078887-READ-104, 37418367102339-WRITE-105, 37418367128444-READ-105, 37418367150924-WRITE-106, 37418367244241-READ-106, 37418367265218-WRITE-107, 37418367343250-READ-107, 37418367369311-WRITE-108, 37418367406178-READ-108, 37418367425903-WRITE-109, 37418367479135-READ-109, 37418367498185-WRITE-110, 37418367574911-READ-110, 37418367594365-WRITE-111, 37418367658229-READ-111, 37418367714940-WRITE-112, 37418367737633-READ-112, 37418367754047-WRITE-113, 37418367775058-READ-113, 37418367801260-WRITE-114, 37418367818229-READ-114, 37418367911573-WRITE-115, 37418367931881-READ-115, 37418367952936-WRITE-116, 37418368011833-READ-116, 37418368041689-WRITE-117, 37418368071602-READ-117, 37418368121436-WRITE-118, 37418370454972-READ-119, 37418370458231-WRITE-119, 37418370485514-READ-119, 37418370511427-WRITE-120, 37418370537589-READ-120, 37418370580797-WRITE-121, 37418370641302-READ-121, 37418370657102-WRITE-122, 37418370704079-READ-122, 37418370735964-WRITE-123, 37418370744747-READ-123, 37418370778456-WRITE-124, 37418370789045-READ-124, 37418370835137-WRITE-125, 37418370893072-READ-125, 37418370948035-WRITE-126, 37418370969980-READ-126, 37418371031772-WRITE-127, 37418371050620-READ-127, 37418371104768-WRITE-128, 37418371122992-READ-128, 37418371169079-WRITE-129, 37418371194167-READ-129, 37418371208670-WRITE-130, 37418371231750-READ-130, 37418371263299-WRITE-131, 37418371289928-READ-131, 37418371318935-WRITE-132, 37418371358318-READ-132, 37418371393140-WRITE-133, 37418371438436-READ-133, 37418371461325-WRITE-134, 37418371482459-READ-134, 37418371538363-WRITE-135, 37418371553888-READ-135, 37418371615936-WRITE-136, 37418371632075-READ-136, 37418371666920-WRITE-137, 37418371682101-READ-137, 37418371735065-WRITE-138, 37418371775652-READ-138, 37418371808379-WRITE-139, 37418371857333-READ-139, 37418371925214-WRITE-140, 37418371942716-READ-140, 37418371966190-WRITE-141, 37418372002128-READ-141, 37418372029887-WRITE-142, 37418372064135-READ-142, 37418372094806-WRITE-143, 37418374175049-WRITE-144, 37418374176581-READ-144, 37418374195427-READ-144, 37418374222816-WRITE-145, 37418374314637-READ-145, 37418374337035-WRITE-146, 37418374395214-READ-146, 37418374409025-WRITE-147, 37418374449736-READ-147, 37418374468724-WRITE-148, 37418374510806-READ-148, 37418374526382-WRITE-149, 37418374573360-READ-149, 37418374594713-WRITE-150, 37418374613687-READ-150, 37418374642616-WRITE-151, 37418374666530-READ-151, 37418374713594-WRITE-152, 37418374782078-READ-152, 37418374834481-WRITE-153, 37418374854622-READ-153, 37418374905571-WRITE-154, 37418374938316-READ-154, 37418374981929-WRITE-155, 37418375025930-READ-155, 37418375040990-WRITE-156, 37418375099461-READ-156, 37418375115539-WRITE-157, 37418375136624-READ-157, 37418375159933-WRITE-158, 37418375174904-READ-158, 37418375202026-WRITE-159, 37418375256869-READ-159, 37418375274903-WRITE-160, 37418375292126-READ-160, 37418375401871-WRITE-161, 37418375455655-READ-161, 37418375467876-WRITE-162, 37418375506441-READ-162, 37418375557488-WRITE-163, 37418375601902-READ-163, 37418375618689-WRITE-164, 37418375661821-READ-164, 37418375685332-WRITE-165, 37418375729736-READ-165, 37418375747980-WRITE-166, 37418375774127-READ-166, 37418375802899-WRITE-167, 37418375823493-READ-167, 37418375846918-WRITE-168, 37418377206052-READ-169, 37418377209816-WRITE-169, 37418377270597-READ-169, 37418377286933-WRITE-170, 37418377313363-READ-170, 37418377332126-WRITE-171, 37418377361840-READ-171, 37418377378525-WRITE-172, 37418377426027-READ-172, 37418377448230-WRITE-173, 37418377510846-READ-173, 37418377527719-WRITE-174, 37418377568053-READ-174, 37418377624473-WRITE-175, 37418377638857-READ-175, 37418377688241-WRITE-176, 37418377702849-READ-176, 37418377755441-WRITE-177, 37418377778615-READ-177, 37418377787978-WRITE-178, 37418377822579-READ-178, 37418377843245-WRITE-179, 37418377887342-READ-179, 37418377927751-WRITE-180, 37418377942967-READ-180, 37418377960649-WRITE-181, 37418377989353-READ-181, 37418378045133-WRITE-182, 37418378058294-READ-182, 37418378080077-WRITE-183, 37418378111083-READ-183, 37418378124059-WRITE-184, 37418378182039-READ-184, 37418378208319-WRITE-185, 37418378257174-READ-185, 37418378284577-WRITE-186, 37418378310619-READ-186, 37418378364741-WRITE-187, 37418378382106-READ-187, 37418378430450-WRITE-188, 37418378483150-READ-188, 37418378495650-WRITE-189, 37418378553864-READ-189, 37418378567923-WRITE-190, 37418378608696-READ-190, 37418378625621-WRITE-191, 37418378678750-READ-192, 37418378696034-WRITE-192, 37418378711050-READ-192, 37418378805264-WRITE-193, 37418380428254-READ-194, 37418380430105-WRITE-194, 37418380446486-READ-194, 37418380498672-WRITE-195, 37418380558953-READ-195, 37418380574525-WRITE-196, 37418380607711-READ-196, 37418380653645-WRITE-197, 37418380675139-READ-197, 37418380699590-WRITE-198, 37418380731515-READ-198, 37418380762458-WRITE-199, 37418380791912-READ-199, 37418380842150-WRITE-200, 37418380879971-READ-200, 37418380927490-WRITE-201, 37418380974784-READ-201, 37418380984157-WRITE-202, 37418381000483-READ-202, 37418381034924-WRITE-203, 37418381079023-READ-204, 37418381095373-READ-204, 37418381101617-WRITE-204, 37418381170274-WRITE-205, 37418381227231-READ-205, 37418381235823-WRITE-206, 37418381293831-READ-206, 37418381303389-WRITE-207, 37418381352500-READ-207, 37418381373631-WRITE-208, 37418381393788-READ-208, 37418381418227-WRITE-209, 37418381448252-READ-209, 37418381498968-WRITE-210, 37418381550511-READ-210, 37418381596296-WRITE-211, 37418381617491-READ-211, 37418381639356-WRITE-212, 37418381666589-READ-212, 37418381700928-WRITE-213, 37418381737943-READ-213, 37418381774608-WRITE-214, 37418381808922-READ-214, 37418381830789-WRITE-215, 37418381837707-READ-215, 37418381906667-WRITE-216, 37418381928795-READ-216, 37418381976711-WRITE-217, 37418381995606-READ-217, 37418382040237-WRITE-218, 37418383255465-READ-219, 37418383264881-READ-219, 37418383283969-WRITE-219, 37418383317236-READ-220, 37418383340947-WRITE-220, 37418383342772-WRITE-221, 37418383369394-READ-221, 37418383385951-WRITE-222, 37418383427534-READ-222, 37418383451969-WRITE-223, 37418383465167-READ-223, 37418383544059-WRITE-224, 37418383566447-READ-224, 37418383609680-WRITE-225, 37418383614367-READ-225, 37418383635242-WRITE-226, 37418383703032-READ-226, 37418383719903-WRITE-227, 37418383770641-READ-227, 37418383782971-WRITE-228, 37418383800781-READ-228, 37418383819857-WRITE-229, 37418383837463-READ-229, 37418383905102-WRITE-230, 37418383946366-READ-230, 37418383973897-WRITE-231, 37418383987953-READ-231, 37418384027361-WRITE-232, 37418384040724-READ-232, 37418384063558-WRITE-233, 37418384113518-READ-233, 37418384130874-WRITE-234, 37418384162297-READ-234, 37418384238137-WRITE-235, 37418384253597-READ-235, 37418384280629-WRITE-236, 37418384372805-READ-237, 37418384376836-WRITE-237, 37418384386818-READ-237, 37418384460525-READ-238, 37418384473276-WRITE-238, 37418384573230-WRITE-239, 37418384579929-READ-239, 37418384599253-WRITE-240, 37418384609238-READ-240, 37418384642015-WRITE-241, 37418384695238-READ-242, 37418384701222-WRITE-242, 37418384720501-READ-242, 37418384741750-WRITE-243, 37418386383809-READ-244, 37418386389462-WRITE-244, 37418386392214-READ-244, 37418386397202-WRITE-245, 37418386412483-READ-245, 37418386485903-WRITE-246, 37418386545843-READ-246, 37418386563738-WRITE-247, 37418386601968-READ-247, 37418386613353-WRITE-248, 37418386632652-READ-248, 37418386672235-WRITE-249, 37418386697272-READ-249, 37418386707742-WRITE-250, 37418386751911-READ-250, 37418386762803-WRITE-251, 37418386787417-READ-251, 37418386830289-WRITE-252, 37418386844147-READ-252, 37418386883143-WRITE-253, 37418386901710-READ-253, 37418386928150-WRITE-254, 37418386970771-READ-254, 37418387007569-WRITE-255, 37418387024217-READ-255, 37418387037943-WRITE-256, 37418387056262-READ-256, 37418387071606-READ-256, 37418387089501-WRITE-257, 37418387167741-WRITE-258, 37418387207775-READ-258, 37418387247113-WRITE-259, 37418387256133-READ-259, 37418387284108-WRITE-260, 37418387321569-READ-260, 37418387347348-WRITE-261, 37418387380088-READ-261, 37418387394133-WRITE-262, 37418387413267-READ-262, 37418387430939-WRITE-263, 37418387471067-READ-263, 37418387485063-WRITE-264, 37418387499089-READ-264, 37418387530272-WRITE-265, 37418387544779-READ-265, 37418387559963-WRITE-266, 37418387570840-READ-266, 37418387605651-WRITE-267, 37418387634647-READ-267, 37418387650907-WRITE-268, 37418388641764-READ-269, 37418388646553-WRITE-269, 37418388663532-READ-269, 37418388681366-WRITE-270, 37418388691995-READ-270, 37418388759593-WRITE-271, 37418388770952-READ-271, 37418388807623-WRITE-272, 37418388829103-READ-272, 37418388852941-WRITE-273, 37418388869188-READ-273, 37418388901174-WRITE-274, 37418388934283-READ-274, 37418388946643-WRITE-275, 37418388979368-READ-275, 37418388993682-WRITE-276, 37418389015981-WRITE-277, 37418389031312-READ-277, 37418389060201-READ-277, 37418389078569-WRITE-278, 37418389095854-READ-278, 37418389129114-WRITE-279, 37418389165299-READ-279, 37418389182346-WRITE-280, 37418389195096-READ-280, 37418389210109-WRITE-281, 37418389227007-READ-281, 37418389245755-WRITE-282, 37418389267666-READ-282, 37418389330491-WRITE-283, 37418389348088-READ-283, 37418389367066-WRITE-284, 37418389390250-READ-284, 37418389399785-WRITE-285, 37418389418528-READ-285, 37418389430267-WRITE-286, 37418389470948-READ-286, 37418389489826-WRITE-287, 37418389507934-WRITE-288, 37418389519314-READ-288, 37418389534782-READ-288, 37418389544323-WRITE-289, 37418389558866-READ-289, 37418389624512-WRITE-290, 37418389632991-READ-290, 37418389652151-WRITE-291, 37418389667831-READ-291, 37418389707718-WRITE-292, 37418389727685-READ-292, 37418389744115-WRITE-293, 37418389770049-READ-293, 37418390750806-WRITE-294, 37418390761572-WRITE-295, 37418390766160-READ-295, 37418390798170-READ-295, 37418390827894-WRITE-296, 37418390846095-READ-296, 37418390858690-WRITE-297, 37418390908863-READ-297, 37418390937943-WRITE-298, 37418390950384-READ-298, 37418390982048-WRITE-299, 37418391007075-READ-299, 37418391019390-WRITE-300, 37418391051248-READ-300, 37418391067816-WRITE-301, 37418391116735-WRITE-302, 37418391120044-READ-302, 37418391138720-READ-302, 37418391162257-WRITE-303, 37418391177672-READ-303, 37418391188150-WRITE-304, 37418391232936-READ-304, 37418391247867-WRITE-305, 37418391285465-WRITE-306, 37418391290981-READ-306, 37418391309056-READ-306, 37418391351289-WRITE-307, 37418391374085-READ-307, 37418391386029-WRITE-308, 37418391401900-READ-308, 37418391469168-WRITE-309, 37418391499726-READ-309, 37418391509872-WRITE-310, 37418391539056-READ-310, 37418391551522-WRITE-311, 37418391573384-READ-311, 37418391588822-WRITE-312, 37418391628764-READ-312, 37418391654637-WRITE-313, 37418391665016-READ-313, 37418391695780-WRITE-314, 37418391708734-READ-314, 37418391729647-WRITE-315, 37418391758542-READ-315, 37418391770492-WRITE-316, 37418391781739-READ-316, 37418391794775-WRITE-317, 37418391809207-READ-317, 37418391861660-WRITE-318, 37418391869461-READ-318, 37418391887370-WRITE-319, 37418392714606-READ-320, 37418392718109-READ-320, 37418392723206-WRITE-320, 37418392734362-WRITE-321, 37418392756917-READ-321, 37418392795052-WRITE-322, 37418392845199-READ-322, 37418392865001-WRITE-323, 37418392873863-READ-323, 37418392900600-WRITE-324, 37418392910815-READ-324, 37418392936770-WRITE-325, 37418392968397-READ-325, 37418392984594-WRITE-326, 37418392998101-READ-326, 37418393013430-WRITE-327, 37418393055761-READ-327, 37418393067509-WRITE-328, 37418393080085-READ-328, 37418393113680-WRITE-329, 37418393125108-READ-329, 37418393160419-WRITE-330, 37418393196654-READ-330, 37418393234615-WRITE-331, 37418393245866-READ-331, 37418393284968-WRITE-332, 37418393297113-READ-332, 37418393303855-WRITE-333, 37418393348219-READ-333, 37418393359277-WRITE-334, 37418393397133-READ-335, 37418393399107-WRITE-335, 37418393433802-READ-335, 37418393447011-WRITE-336, 37418393482130-READ-336, 37418393493767-WRITE-337, 37418393521508-READ-337, 37418393543334-WRITE-338, 37418393568586-READ-338, 37418393584101-WRITE-339, 37418393602322-READ-339, 37418393639075-WRITE-340, 37418393657749-READ-340, 37418393701468-READ-341, 37418393703561-WRITE-341, 37418393719136-WRITE-342, 37418393755075-READ-342, 37418393784699-WRITE-343, 37418393809018-READ-344, 37418393818274-WRITE-344, 37418393831962-READ-344, 37418393851073-WRITE-345, 37418393883967-READ-345, 37418393894197-WRITE-346, 37418393919478-READ-346, 37418393959211-WRITE-347, 37418393965145-READ-347, 37418393989445-WRITE-348, 37418394025935-READ-348, 37418394047965-WRITE-349, 37418394066223-READ-349, 37418394078104-WRITE-350, 37418394091767-READ-350, 37418394114310-READ-351, 37418394124089-WRITE-351, 37418394134406-WRITE-352, 37418394146397-READ-352, 37418394216686-WRITE-353, 37418394218843-READ-353, 37418394227763-WRITE-354, 37418394237522-READ-354, 37418394293775-WRITE-355, 37418394304942-READ-355, 37418394335039-WRITE-356, 37418394347306-READ-356, 37418394354843-WRITE-357, 37418394388711-READ-357, 37418394396829-WRITE-358, 37418394411782-READ-358, 37418394424100-WRITE-359, 37418394453849-WRITE-360, 37418394471233-READ-360, 37418394473531-READ-360, 37418394486314-WRITE-361, 37418394525775-READ-362, 37418394542242-WRITE-362, 37418394549612-READ-362, 37418394559560-WRITE-363, 37418394573877-READ-363, 37418394582306-WRITE-364, 37418394609129-READ-364, 37418394619266-WRITE-365, 37418394636939-READ-365, 37418394658858-WRITE-366, 37418394679061-READ-366, 37418394703934-WRITE-367, 37418394730350-READ-368, 37418394733304-WRITE-368, 37418394742069-READ-369, 37418394769367-WRITE-369, 37418394802165-READ-370, 37418394809866-WRITE-370, 37418394823628-READ-370, 37418394832784-WRITE-371, 37418394904253-READ-371, 37418394912454-WRITE-372, 37418394933803-READ-373, 37418394950060-WRITE-373, 37418394967230-READ-373, 37418395011198-WRITE-374, 37418395014424-READ-374, 37418395035873-WRITE-375, 37418395044632-READ-375, 37418395072609-WRITE-376, 37418395085099-READ-376, 37418395113589-WRITE-377, 37418395129434-READ-377, 37418395142669-WRITE-378, 37418395154536-READ-378, 37418395168399-WRITE-379, 37418395214499-READ-379, 37418395224637-WRITE-380, 37418395257981-READ-380, 37418395277295-WRITE-381, 37418395290316-READ-381, 37418395329931-WRITE-382, 37418395341776-READ-383, 37418395345415-WRITE-383, 37418395398823-WRITE-384, 37418395409662-READ-384, 37418395410077-READ-384, 37418395453130-READ-385, 37418395468890-WRITE-385, 37418395471083-WRITE-386, 37418395537686-READ-387, 37418395541917-READ-387, 37418395543914-WRITE-387, 37418395548962-WRITE-388, 37418395567735-READ-388, 37418395581505-WRITE-389, 37418395636150-READ-391, 37418395641797-WRITE-390, 37418395676982-READ-391, 37418395685191-WRITE-391, 37418395707161-READ-392, 37418395711868-WRITE-392, 37418395759039-READ-393, 37418395765790-WRITE-393, 37418395782689-READ-393, 37418395812720-WRITE-394, 37418395828292-READ-394, 37418395841566-WRITE-395, 37418395883659-READ-395, 37418395897801-WRITE-396, 37418395913769-READ-396, 37418395944925-WRITE-397, 37418395958052-READ-397, 37418395974924-WRITE-398, 37418395995899-READ-398, 37418396007951-WRITE-399, 37418396046550-READ-400, 37418396049191-WRITE-400, 37418396067966-READ-400, 37418396079304-WRITE-401, 37418396125603-READ-401, 37418396138914-WRITE-402, 37418396151909-READ-402, 37418396172796-WRITE-403, 37418396187556-READ-403, 37418396198043-WRITE-404, 37418396219680-READ-404, 37418396241833-WRITE-405, 37418396245881-READ-405, 37418396254483-WRITE-406, 37418396272123-READ-406, 37418396294127-WRITE-407, 37418396311273-READ-407, 37418396324651-WRITE-408, 37418396339736-READ-408, 37418396349894-WRITE-409, 37418396375686-READ-409, 37418396395616-WRITE-410, 37418396409657-READ-410, 37418396431613-WRITE-411, 37418396434901-READ-411, 37418396456849-WRITE-412, 37418396468385-READ-412, 37418396484351-WRITE-413, 37418396504940-READ-414, 37418396513808-WRITE-414, 37418396532296-READ-415, 37418396534214-WRITE-415, 37418396553122-READ-415, 37418396562404-WRITE-416, 37418396587059-READ-416, 37418396606078-WRITE-417, 37418396619782-READ-417, 37418396631873-WRITE-418, 37418396658524-READ-418, 37418396672840-WRITE-419, 37418396691000-READ-419, 37418396708698-WRITE-420, 37418396723465-READ-420, 37418396734312-WRITE-421, 37418396748139-READ-421, 37418396775512-READ-422, 37418396775786-WRITE-422, 37418396799907-WRITE-423, 37418396820015-READ-423, 37418396832152-WRITE-424, 37418396850442-READ-424, 37418396861131-WRITE-425, 37418396876427-READ-425, 37418396883990-WRITE-426, 37418396899118-READ-426, 37418396908809-WRITE-427, 37418396926595-READ-427, 37418396940272-WRITE-428, 37418396969010-READ-429, 37418396974188-WRITE-429, 37418396983862-READ-430, 37418396995859-WRITE-430, 37418397018680-READ-430, 37418397042724-READ-431, 37418397042724-WRITE-431, 37418397063985-WRITE-432, 37418397067210-READ-432, 37418397075287-WRITE-433, 37418397108207-READ-433, 37418397118501-WRITE-434, 37418397136102-READ-434, 37418397146290-WRITE-435, 37418397156286-READ-435, 37418397173324-WRITE-436, 37418397188459-READ-436, 37418397200183-WRITE-437, 37418397210968-READ-437, 37418397230448-WRITE-438, 37418397247260-READ-438, 37418397258135-WRITE-439, 37418397267655-READ-439, 37418397284603-WRITE-440, 37418397296455-READ-440, 37418397313420-WRITE-441, 37418397328169-READ-441, 37418397340947-WRITE-442, 37418397351019-READ-442, 37418397363893-WRITE-443, 37418397389941-WRITE-444, 37418397395456-READ-444, 37418397403067-READ-444, 37418397416331-WRITE-445, 37418397427857-READ-445, 37418397452947-WRITE-446, 37418397466277-READ-447, 37418397471640-WRITE-447, 37418397496150-READ-447, 37418397508602-WRITE-448, 37418397524389-READ-448, 37418397534039-WRITE-449, 37418397551801-READ-449, 37418397575032-WRITE-450, 37418397598963-READ-451, 37418397598963-WRITE-451, 37418397639055-READ-451, 37418397653664-WRITE-452, 37418397670920-READ-453, 37418397674600-WRITE-453, 37418397705082-WRITE-454, 37418397710917-READ-454, 37418397724103-READ-455, 37418397731582-WRITE-455, 37418397758010-READ-455, 37418397767238-WRITE-456, 37418397785797-READ-456, 37418397806517-WRITE-457, 37418397810519-READ-457, 37418397829272-WRITE-458, 37418397855587-READ-458, 37418397864237-WRITE-459, 37418397884255-READ-460, 37418397898591-WRITE-460, 37418397907130-READ-460, 37418397919723-WRITE-461, 37418397933072-READ-461, 37418397944995-WRITE-462, 37418397959576-READ-463, 37418397964795-WRITE-463, 37418397989667-READ-464, 37418398009314-READ-464, 37418398041339-WRITE-464, 37418398043282-WRITE-465, 37418398052916-READ-465, 37418398072178-WRITE-466, 37418398083029-READ-466, 37418398103060-WRITE-467, 37418398128029-READ-467, 37418398141939-WRITE-468, 37418398155968-READ-469, 37418398163302-WRITE-469, 37418398189452-WRITE-470, 37418398198712-READ-470, 37418398211307-READ-470, 37418398221579-WRITE-471, 37418398238732-READ-471, 37418398255045-WRITE-472, 37418398268343-READ-472, 37418398300019-READ-473, 37418398311996-WRITE-473, 37418398338081-READ-473, 37418398346691-WRITE-474, 37418398359379-WRITE-475, 37418398372165-READ-475, 37418398380107-WRITE-476, 37418398396941-READ-476, 37418398408138-WRITE-477, 37418398427229-READ-477, 37418398435243-WRITE-478, 37418398445830-READ-478, 37418398456410-WRITE-479, 37418398466810-READ-479, 37418398503128-WRITE-480, 37418398510059-READ-480, 37418398522158-WRITE-481, 37418398539032-READ-481, 37418398550231-WRITE-482, 37418398561448-READ-482, 37418398585290-WRITE-483, 37418398609735-READ-483, 37418398651089-WRITE-484, 37418398654564-READ-484, 37418398674387-WRITE-485, 37418398676613-READ-485, 37418398698266-WRITE-486, 37418398722907-WRITE-487, 37418398731128-READ-487, 37418398738830-READ-488, 37418398744964-WRITE-488, 37418398754221-READ-488, 37418398779572-WRITE-489, 37418398789694-READ-489, 37418398806155-WRITE-490, 37418398812707-READ-490, 37418398827748-WRITE-491, 37418398853720-READ-492, 37418398862076-WRITE-492, 37418398874209-READ-492, 37418398882079-WRITE-493, 37418398899496-READ-494, 37418398904120-WRITE-494, 37418398918010-READ-494, 37418398931304-WRITE-495, 37418398937496-READ-495, 37418398964380-READ-497, 37418398972234-WRITE-496, 37418398976996-WRITE-497, 37418398993030-READ-497, 37418399005289-WRITE-498, 37418399021633-READ-498, 37418399034666-WRITE-499, 37418399041718-READ-499]

Process finished with exit code 0

该案例是失败的,明显我们写入的时间是有一些延迟的,因为我们是先写入,再记录写入时间,这两个动作是非原子的,对比看下延迟方法是否有比较明显的差异

实战代码2-懒惰版原子递增方法

package com.gallant.test;

import java.util.ArrayList;
import java.util.List;
import java.util.Vector;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.CyclicBarrier;
import java.util.concurrent.atomic.AtomicInteger;

/**
 * @author : 会灰翔的灰机
 * @date : 2021/2/8
 */
public class AtomicIntegerTest2 {
    

  private static final AtomicInteger AI = new AtomicInteger();
  private static final CyclicBarrier CB = new CyclicBarrier(1000);
  private static final CountDownLatch CDL = new CountDownLatch(1000);
  private static final List<String> READ_RESULT = new Vector<>();
  private static final List<String> WRITE_RESULT = new Vector<>();

  public static void main(String[] args) throws InterruptedException {
    
    for (int i = 0; i < 500; i++) {
    
      // 500个线程并发读取
      new MyReadTask(CB, CDL).start();
      // 500个线程并发写入
      new MyWriteTask(CB, CDL, i + 1).start();
    }
    // 等待所有线程执行结束
    CDL.await();
    System.out.println(READ_RESULT.size()+","+WRITE_RESULT.size());
    System.out.println("read:" + READ_RESULT);
    System.out.println("write:" + WRITE_RESULT);
    List<String> all = new ArrayList<>(READ_RESULT);
    all.addAll(WRITE_RESULT);
    all.sort((o1, o2) -> (int) (Long.parseLong(o1.split("-")[0]) - Long.parseLong(o2.split("-")[0])));
    System.out.println("all:"+all);
  }

  private static class MyReadTask extends Thread {
    
    private CyclicBarrier cb;
    private CountDownLatch cdl;

    public MyReadTask(CyclicBarrier cb, CountDownLatch cdl) {
    
      this.cb = cb;
      this.cdl = cdl;
    }

    @Override
    public void run() {
    
      try {
    
        cb.await();
      } catch (Exception e) {
    
        e.printStackTrace();
      }
      READ_RESULT.add(System.nanoTime() + "-READ-" + AI.get());
      cdl.countDown();
    }
  }

  private static class MyWriteTask extends Thread {
    
    private CyclicBarrier cb;
    private CountDownLatch cdl;
    private int value;

    public MyWriteTask(CyclicBarrier cb, CountDownLatch cdl, int value) {
    
      this.cb = cb;
      this.cdl = cdl;
      this.value = value;
    }

    @Override
    public void run() {
    
      try {
    
        cb.await();
      } catch (Exception e) {
    
        e.printStackTrace();
      }
      AI.lazySet(value);
      WRITE_RESULT.add(System.nanoTime() + "-WRITE-" + value);
      cdl.countDown();
    }
  }

}

输出结果2

500,500
read:[37555649353676-READ-500, 37555649387666-READ-1, 37555649447909-READ-2, 37555649749490-READ-3, 37555649812042-READ-4, 37555649871220-READ-5, 37555649978733-READ-6, 37555650022545-READ-7, 37555650081440-READ-8, 37555650203548-READ-9, 37555650279129-READ-10, 37555650362476-READ-11, 37555650411422-READ-12, 37555650489330-READ-13, 37555650577140-READ-14, 37555650653486-READ-15, 37555653094992-READ-17, 37555653140437-READ-17, 37555653245979-READ-18, 37555653334051-READ-19, 37555653395344-READ-20, 37555653482904-READ-21, 37555653561086-READ-22, 37555653632126-READ-23, 37555653704793-READ-24, 37555653781358-READ-25, 37555653852272-READ-26, 37555653928350-READ-27, 37555654008240-READ-28, 37555654084165-READ-29, 37555654161970-READ-30, 37555654230359-READ-31, 37555654305112-READ-32, 37555654382979-READ-33, 37555654457026-READ-34, 37555654530812-READ-35, 37555654606190-READ-36, 37555654676589-READ-37, 37555654751607-READ-38, 37555654829373-READ-39, 37555654902707-READ-40, 37555656982376-READ-41, 37555657060324-READ-42, 37555657170173-READ-43, 37555657274339-READ-44, 37555657353234-READ-45, 37555657425658-READ-46, 37555657502211-READ-47, 37555657572011-READ-48, 37555657636662-READ-49, 37555657711934-READ-50, 37555657762024-READ-51, 37555657823260-READ-52, 37555657885718-READ-53, 37555657955254-READ-54, 37555658080933-READ-56, 37555658151690-READ-57, 37555658195269-READ-58, 37555658269236-READ-59, 37555658311203-READ-60, 37555658383315-READ-61, 37555658428801-READ-62, 37555658495913-READ-63, 37555658548644-READ-64, 37555658620271-READ-65, 37555662161286-READ-66, 37555662164807-READ-66, 37555662212014-READ-67, 37555662333420-READ-68, 37555662405673-READ-69, 37555662517693-READ-70, 37555662598190-READ-71, 37555662643772-READ-72, 37555662690860-READ-73, 37555662765916-READ-74, 37555662807301-READ-75, 37555662859666-READ-76, 37555662923437-READ-77, 37555663024445-READ-78, 37555663167562-READ-80, 37555663182577-READ-80, 37555663232899-READ-81, 37555663274676-READ-82, 37555663390549-READ-83, 37555663470885-READ-84, 37555663579179-READ-85, 37555663652501-READ-86, 37555663743968-READ-87, 37555663853265-READ-88, 37555663942826-READ-89, 37555664055521-READ-90, 37555666078816-READ-91, 37555666131135-READ-92, 37555666247026-READ-93, 37555666293984-READ-94, 37555666364652-READ-95, 37555666404331-READ-96, 37555666476190-READ-97, 37555666541514-READ-98, 37555666605914-READ-99, 37555666698800-READ-100, 37555666774673-READ-101, 37555666860390-READ-102, 37555666926484-READ-103, 37555666978418-READ-104, 37555667030243-READ-105, 37555667070602-READ-106, 37555667144727-READ-107, 37555667209066-READ-108, 37555667265964-READ-109, 37555667342176-READ-110, 37555667412745-READ-111, 37555667483148-READ-112, 37555667547554-READ-113, 37555667600430-READ-114, 37555667630703-READ-115, 37555669466354-READ-116, 37555669562439-READ-117, 37555669608056-READ-118, 37555669707126-READ-119, 37555669789125-READ-120, 37555669856376-READ-121, 37555669938253-READ-122, 37555669998164-READ-123, 37555670065190-READ-124, 37555670158148-READ-125, 37555670225226-READ-126, 37555670278740-READ-127, 37555670327771-READ-128, 37555670384829-READ-130, 37555670415901-READ-130, 37555670507457-READ-131, 37555670555398-READ-132, 37555670622207-READ-133, 37555670699964-READ-134, 37555670778079-READ-135, 37555670836990-READ-136, 37555670904734-READ-137, 37555670955316-READ-138, 37555671062149-READ-139, 37555671148666-READ-140, 37555673208244-READ-141, 37555673305155-READ-142, 37555673352304-READ-143, 37555673390744-READ-144, 37555673435489-READ-145, 37555673488152-READ-146, 37555673529629-READ-147, 37555673567112-READ-148, 37555673605222-READ-149, 37555673718619-READ-150, 37555673786098-READ-151, 37555673841484-READ-152, 37555673948972-READ-153, 37555674000798-READ-154, 37555674106062-READ-155, 37555674149627-READ-156, 37555674191561-READ-157, 37555674228425-READ-158, 37555674346781-READ-159, 37555674420125-READ-160, 37555674469525-READ-161, 37555674533220-READ-162, 37555674611156-READ-163, 37555674668259-READ-164, 37555674709671-READ-165, 37555676168255-READ-166, 37555676195130-READ-167, 37555676235372-READ-168, 37555676289140-READ-169, 37555676400819-READ-170, 37555676430563-READ-171, 37555676503737-READ-172, 37555676536529-READ-173, 37555676580107-READ-174, 37555676628654-READ-175, 37555676678187-READ-176, 37555676750989-READ-177, 37555676807801-READ-178, 37555676899120-READ-179, 37555676974494-READ-180, 37555677040730-READ-181, 37555677108870-READ-182, 37555677155592-READ-183, 37555677266365-READ-184, 37555677333357-READ-185, 37555677395423-READ-186, 37555677424858-READ-187, 37555677513638-READ-188, 37555677639552-READ-189, 37555677704155-READ-190, 37555679354080-READ-191, 37555679402295-READ-192, 37555679472605-READ-193, 37555679513526-READ-194, 37555679579166-READ-195, 37555679659238-READ-196, 37555679749470-READ-197, 37555679827641-READ-198, 37555679903768-READ-199, 37555679945318-READ-200, 37555679990536-READ-201, 37555680027998-READ-202, 37555680069227-READ-203, 37555680129845-READ-204, 37555680189457-READ-205, 37555680253838-READ-206, 37555680326754-READ-207, 37555680362721-READ-208, 37555680457710-READ-209, 37555680493809-READ-210, 37555680531484-READ-211, 37555680567335-READ-212, 37555680680664-READ-213, 37555680713275-READ-214, 37555680751510-READ-215, 37555681957709-READ-217, 37555681992713-READ-218, 37555682030630-READ-218, 37555682105572-READ-219, 37555682139514-READ-220, 37555682225644-READ-221, 37555682338693-READ-222, 37555682407926-READ-223, 37555682475973-READ-224, 37555682534599-READ-225, 37555682591181-READ-226, 37555682624565-READ-227, 37555682710538-READ-228, 37555682753076-READ-229, 37555682819177-READ-230, 37555682877345-READ-231, 37555682943717-READ-232, 37555683008226-READ-233, 37555683077836-READ-234, 37555683125021-READ-235, 37555683206871-READ-236, 37555683261269-READ-237, 37555683297192-READ-238, 37555683388560-READ-239, 37555683454481-READ-240, 37555685125952-READ-242, 37555685141193-READ-242, 37555685206271-READ-243, 37555685252207-READ-244, 37555685312151-READ-245, 37555685366231-READ-246, 37555685401071-READ-247, 37555685441860-READ-248, 37555685491444-READ-249, 37555685533544-READ-250, 37555685587986-READ-251, 37555685618005-READ-252, 37555685652887-READ-253, 37555685730237-READ-254, 37555685775963-READ-255, 37555685799950-READ-255, 37555685814464-READ-255, 37555685897823-READ-257, 37555685951366-READ-259, 37555685979990-READ-260, 37555686010301-READ-261, 37555686048230-READ-262, 37555686089016-READ-263, 37555686170432-READ-264, 37555686218051-READ-265, 37555687336149-READ-267, 37555687347640-READ-267, 37555687410953-READ-268, 37555687478682-READ-269, 37555687528298-READ-270, 37555687553916-READ-271, 37555687603762-READ-272, 37555687635773-READ-273, 37555687690353-READ-274, 37555687759909-READ-275, 37555687836738-READ-276, 37555687892295-READ-277, 37555687951870-READ-278, 37555687995412-READ-279, 37555688043820-READ-280, 37555688113177-READ-281, 37555688159453-READ-282, 37555688197024-READ-283, 37555688243050-READ-284, 37555688275784-READ-285, 37555688356095-READ-286, 37555688413899-READ-287, 37555688446379-READ-288, 37555688508587-READ-289, 37555688566411-READ-290, 37555688615945-READ-291, 37555688648001-READ-292, 37555688687069-READ-293, 37555688739957-READ-294, 37555688795329-READ-295, 37555688821795-READ-296, 37555688915865-READ-297, 37555688958701-READ-298, 37555689011568-READ-299, 37555689089632-READ-300, 37555689118685-READ-301, 37555690159719-READ-304, 37555690181790-READ-304, 37555690252319-READ-304, 37555690310129-READ-305, 37555690336213-READ-306, 37555690380156-READ-307, 37555690418744-READ-309, 37555690445358-READ-309, 37555690488075-READ-310, 37555690539940-READ-311, 37555690577596-READ-312, 37555690639215-READ-313, 37555690667458-READ-314, 37555690738730-READ-315, 37555690808041-READ-316, 37555690846161-READ-317, 37555690872996-READ-318, 37555690924171-READ-319, 37555690987212-READ-320, 37555691017619-READ-321, 37555691060865-READ-322, 37555691092696-READ-323, 37555691136093-READ-324, 37555691185222-READ-325, 37555691223875-READ-326, 37555691260786-READ-327, 37555691330809-READ-329, 37555691344438-READ-329, 37555691368237-READ-330, 37555691425565-READ-331, 37555691486799-READ-332, 37555691507071-READ-333, 37555691554105-READ-334, 37555691586992-READ-335, 37555691619755-READ-336, 37555691663926-READ-337, 37555691720044-READ-338, 37555691753708-READ-339, 37555691800108-READ-340, 37555691838010-READ-341, 37555691886531-READ-342, 37555691915916-READ-343, 37555691940208-READ-344, 37555691992149-READ-345, 37555692021200-READ-346, 37555692070088-READ-347, 37555692106729-READ-348, 37555692157075-READ-349, 37555692184613-READ-350, 37555692230113-READ-351, 37555692287745-READ-352, 37555692333089-READ-354, 37555692345114-READ-354, 37555692390509-READ-355, 37555692445104-READ-356, 37555692469377-READ-357, 37555692495629-READ-358, 37555692524176-READ-359, 37555692550172-READ-360, 37555692609062-READ-361, 37555692652723-READ-362, 37555692686334-READ-363, 37555692726686-READ-364, 37555692759220-READ-365, 37555692780605-READ-366, 37555692842588-READ-367, 37555692862281-READ-368, 37555692896642-READ-369, 37555692926083-READ-370, 37555692948971-READ-371, 37555693022811-READ-372, 37555693059627-READ-373, 37555693079615-READ-374, 37555693141277-READ-376, 37555693189926-READ-376, 37555693221962-READ-377, 37555693257904-READ-378, 37555693296935-READ-379, 37555693328084-READ-380, 37555693349764-READ-381, 37555693377993-READ-382, 37555693427059-READ-384, 37555693454951-READ-385, 37555693484467-READ-386, 37555693498353-READ-386, 37555693555860-READ-388, 37555693582917-READ-388, 37555693617420-READ-389, 37555693664926-READ-390, 37555693720492-READ-392, 37555693745640-READ-393, 37555693836001-READ-396, 37555693782803-READ-396, 37555693862129-READ-396, 37555693758379-READ-396, 37555693939900-READ-398, 37555693953337-READ-398, 37555693998000-READ-399, 37555694031953-READ-400, 37555694070160-READ-401, 37555694096678-READ-402, 37555694133936-READ-403, 37555694179206-READ-405, 37555694209083-READ-406, 37555694239494-READ-406, 37555694269416-READ-407, 37555694303246-READ-408, 37555694323976-READ-409, 37555694367254-READ-410, 37555694405085-READ-411, 37555694432457-READ-412, 37555694465669-READ-414, 37555694488224-READ-414, 37555694548057-READ-415, 37555694571830-READ-416, 37555694604413-READ-417, 37555694637723-READ-419, 37555694653195-READ-419, 37555694702100-READ-420, 37555694728631-READ-421, 37555694762166-READ-422, 37555694783482-READ-423, 37555694840246-READ-424, 37555694877943-READ-425, 37555694904903-READ-426, 37555694936267-READ-427, 37555694960313-READ-428, 37555694998653-READ-429, 37555695031311-READ-430, 37555695079885-READ-431, 37555695116434-READ-432, 37555695144430-READ-433, 37555695173125-READ-434, 37555695210916-READ-435, 37555695245058-READ-436, 37555695268411-READ-437, 37555695299951-READ-438, 37555695332311-READ-439, 37555695358179-READ-440, 37555695384819-READ-441, 37555695408855-READ-442, 37555695467788-READ-443, 37555695493317-READ-444, 37555695516308-READ-445, 37555695548787-READ-446, 37555695600546-READ-447, 37555695621329-READ-448, 37555695656920-READ-449, 37555695679978-READ-450, 37555695719527-READ-451, 37555695765173-READ-452, 37555695792779-READ-454, 37555695826127-READ-454, 37555695857252-READ-456, 37555695872882-READ-456, 37555695918369-READ-457, 37555695955877-READ-458, 37555695983967-READ-459, 37555696024691-READ-460, 37555696060446-READ-461, 37555696103733-READ-462, 37555696134344-READ-463, 37555696200825-READ-466, 37555696221322-READ-466, 37555696207149-READ-466, 37555696247688-READ-467, 37555696277797-READ-468, 37555696308166-READ-469, 37555696334298-READ-470, 37555696366255-READ-471, 37555696396308-READ-472, 37555696420979-READ-473, 37555696470267-READ-474, 37555696494918-READ-475, 37555696538315-READ-476, 37555696557676-READ-477, 37555696602085-READ-478, 37555696622012-READ-479, 37555696659845-READ-481, 37555696685925-READ-481, 37555696730448-READ-482, 37555696762071-READ-483, 37555696807396-READ-484, 37555696862298-READ-486, 37555696916363-READ-486, 37555696938409-READ-487, 37555696998784-READ-488, 37555697041343-READ-489, 37555697065681-READ-490, 37555697116019-READ-491, 37555697135137-READ-492, 37555697170654-READ-493, 37555697208021-READ-494, 37555697239735-READ-495, 37555697277156-READ-496, 37555697322796-READ-497, 37555697342444-READ-498, 37555697363625-READ-499]
write:[37555649338087-WRITE-500, 37555649393140-WRITE-1, 37555649422452-WRITE-2, 37555649692215-WRITE-3, 37555649774822-WRITE-4, 37555649851792-WRITE-5, 37555649893012-WRITE-6, 37555649997637-WRITE-7, 37555650053504-WRITE-8, 37555650147996-WRITE-9, 37555650222762-WRITE-10, 37555650295198-WRITE-11, 37555650386349-WRITE-12, 37555650467795-WRITE-13, 37555650522764-WRITE-14, 37555650597255-WRITE-15, 37555650670064-WRITE-16, 37555653106024-WRITE-17, 37555653178667-WRITE-18, 37555653269090-WRITE-19, 37555653357791-WRITE-20, 37555653421586-WRITE-21, 37555653496436-WRITE-22, 37555653576468-WRITE-23, 37555653647544-WRITE-24, 37555653717571-WRITE-25, 37555653795901-WRITE-26, 37555653864033-WRITE-27, 37555653947274-WRITE-28, 37555654019097-WRITE-29, 37555654097269-WRITE-30, 37555654177407-WRITE-31, 37555654244137-WRITE-32, 37555654317382-WRITE-33, 37555654394817-WRITE-34, 37555654470761-WRITE-35, 37555654544131-WRITE-36, 37555654620834-WRITE-37, 37555654690156-WRITE-38, 37555654764758-WRITE-39, 37555654841850-WRITE-40, 37555656980867-WRITE-41, 37555657002398-WRITE-42, 37555657151554-WRITE-43, 37555657256004-WRITE-44, 37555657328563-WRITE-45, 37555657408498-WRITE-46, 37555657486782-WRITE-47, 37555657558463-WRITE-48, 37555657624545-WRITE-49, 37555657693957-WRITE-50, 37555657735435-WRITE-51, 37555657809943-WRITE-52, 37555657874224-WRITE-53, 37555657942901-WRITE-54, 37555657985536-WRITE-55, 37555658037612-WRITE-56, 37555658100514-WRITE-57, 37555658165671-WRITE-58, 37555658250036-WRITE-59, 37555658290816-WRITE-60, 37555658365487-WRITE-61, 37555658403744-WRITE-62, 37555658480232-WRITE-63, 37555658524578-WRITE-64, 37555658569158-WRITE-65, 37555662152821-WRITE-66, 37555662194850-WRITE-67, 37555662246926-WRITE-68, 37555662384839-WRITE-69, 37555662460210-WRITE-70, 37555662528270-WRITE-71, 37555662618474-WRITE-72, 37555662666830-WRITE-73, 37555662711996-WRITE-74, 37555662783149-WRITE-75, 37555662835460-WRITE-76, 37555662902583-WRITE-77, 37555662989589-WRITE-78, 37555663072477-WRITE-79, 37555663158474-WRITE-80, 37555663218446-WRITE-81, 37555663253421-WRITE-82, 37555663306012-WRITE-83, 37555663416226-WRITE-84, 37555663555580-WRITE-85, 37555663633923-WRITE-86, 37555663720024-WRITE-87, 37555663790312-WRITE-88, 37555663867191-WRITE-89, 37555664006637-WRITE-90, 37555666079498-WRITE-91, 37555666128352-WRITE-92, 37555666226609-WRITE-93, 37555666269569-WRITE-94, 37555666344294-WRITE-95, 37555666383362-WRITE-96, 37555666424016-WRITE-97, 37555666494016-WRITE-98, 37555666559188-WRITE-99, 37555666645995-WRITE-100, 37555666707713-WRITE-101, 37555666819793-WRITE-102, 37555666882645-WRITE-103, 37555666953745-WRITE-104, 37555667004771-WRITE-105, 37555667057819-WRITE-106, 37555667087516-WRITE-107, 37555667186254-WRITE-108, 37555667232163-WRITE-109, 37555667291450-WRITE-110, 37555667358595-WRITE-111, 37555667460157-WRITE-112, 37555667531646-WRITE-113, 37555667568381-WRITE-114, 37555667609512-WRITE-115, 37555669456932-WRITE-116, 37555669540610-WRITE-117, 37555669587752-WRITE-118, 37555669627505-WRITE-119, 37555669743123-WRITE-120, 37555669806342-WRITE-121, 37555669896064-WRITE-122, 37555669957329-WRITE-123, 37555670013578-WRITE-124, 37555670083188-WRITE-125, 37555670175760-WRITE-126, 37555670250934-WRITE-127, 37555670296257-WRITE-128, 37555670342686-WRITE-129, 37555670399021-WRITE-130, 37555670477760-WRITE-131, 37555670520325-WRITE-132, 37555670591279-WRITE-133, 37555670650243-WRITE-134, 37555670710849-WRITE-135, 37555670815987-WRITE-136, 37555670888606-WRITE-137, 37555670933963-WRITE-138, 37555670964477-WRITE-139, 37555671072328-WRITE-140, 37555673201936-WRITE-141, 37555673220263-WRITE-142, 37555673325693-WRITE-143, 37555673370250-WRITE-144, 37555673415674-WRITE-145, 37555673469859-WRITE-146, 37555673520843-WRITE-147, 37555673547415-WRITE-148, 37555673592582-WRITE-149, 37555673703966-WRITE-150, 37555673771129-WRITE-151, 37555673829067-WRITE-152, 37555673908879-WRITE-153, 37555673969152-WRITE-154, 37555674018973-WRITE-155, 37555674127876-WRITE-156, 37555674183490-WRITE-157, 37555674208481-WRITE-158, 37555674336115-WRITE-159, 37555674406617-WRITE-160, 37555674441812-WRITE-161, 37555674502146-WRITE-162, 37555674630873-WRITE-163, 37555674635689-WRITE-164, 37555674680533-WRITE-165, 37555676163710-WRITE-166, 37555676177892-WRITE-167, 37555676213740-WRITE-168, 37555676270183-WRITE-169, 37555676310450-WRITE-170, 37555676412372-WRITE-171, 37555676487172-WRITE-172, 37555676518028-WRITE-173, 37555676557670-WRITE-174, 37555676607159-WRITE-175, 37555676648275-WRITE-176, 37555676697634-WRITE-177, 37555676796816-WRITE-178, 37555676888917-WRITE-179, 37555676918220-WRITE-180, 37555676988125-WRITE-181, 37555677055964-WRITE-182, 37555677133488-WRITE-183, 37555677218226-WRITE-184, 37555677316470-WRITE-185, 37555677350548-WRITE-186, 37555677408136-WRITE-187, 37555677520626-WRITE-188, 37555677585131-WRITE-189, 37555677652380-WRITE-190, 37555679334948-WRITE-191, 37555679380036-WRITE-192, 37555679443956-WRITE-193, 37555679493507-WRITE-194, 37555679537616-WRITE-195, 37555679620868-WRITE-196, 37555679680163-WRITE-197, 37555679811587-WRITE-198, 37555679889881-WRITE-199, 37555679922088-WRITE-200, 37555679970098-WRITE-201, 37555680012833-WRITE-202, 37555680051467-WRITE-203, 37555680115797-WRITE-204, 37555680174585-WRITE-205, 37555680237132-WRITE-206, 37555680286393-WRITE-207, 37555680348255-WRITE-208, 37555680405712-WRITE-209, 37555680470431-WRITE-210, 37555680513012-WRITE-211, 37555680547146-WRITE-212, 37555680636196-WRITE-213, 37555680698173-WRITE-214, 37555680732024-WRITE-215, 37555681927312-WRITE-216, 37555681976408-WRITE-217, 37555682004879-WRITE-218, 37555682097337-WRITE-219, 37555682126973-WRITE-220, 37555682211142-WRITE-221, 37555682282105-WRITE-222, 37555682343993-WRITE-223, 37555682457289-WRITE-224, 37555682515896-WRITE-225, 37555682581612-WRITE-226, 37555682605284-WRITE-227, 37555682654739-WRITE-228, 37555682736295-WRITE-229, 37555682805062-WRITE-230, 37555682844453-WRITE-231, 37555682887405-WRITE-232, 37555682990882-WRITE-233, 37555683051523-WRITE-234, 37555683112874-WRITE-235, 37555683191975-WRITE-236, 37555683244566-WRITE-237, 37555683279838-WRITE-238, 37555683345434-WRITE-239, 37555683413451-WRITE-240, 37555685115023-WRITE-241, 37555685125457-WRITE-242, 37555685193397-WRITE-243, 37555685231905-WRITE-244, 37555685288315-WRITE-245, 37555685329009-WRITE-246, 37555685381149-WRITE-247, 37555685420436-WRITE-248, 37555685475732-WRITE-249, 37555685511770-WRITE-250, 37555685573374-WRITE-251, 37555685601946-WRITE-252, 37555685641460-WRITE-253, 37555685712527-WRITE-254, 37555685770284-WRITE-255, 37555685831730-WRITE-256, 37555685844652-WRITE-258, 37555685880750-WRITE-257, 37555685914600-WRITE-259, 37555685970734-WRITE-260, 37555685997094-WRITE-261, 37555686030789-WRITE-262, 37555686065136-WRITE-263, 37555686134889-WRITE-264, 37555686207247-WRITE-265, 37555687319920-WRITE-267, 37555687345237-WRITE-266, 37555687368207-WRITE-268, 37555687467858-WRITE-269, 37555687490034-WRITE-270, 37555687544673-WRITE-271, 37555687580605-WRITE-272, 37555687622125-WRITE-273, 37555687684467-WRITE-274, 37555687751615-WRITE-275, 37555687778462-WRITE-276, 37555687872874-WRITE-277, 37555687941182-WRITE-278, 37555687977329-WRITE-279, 37555688027210-WRITE-280, 37555688070335-WRITE-281, 37555688121043-WRITE-282, 37555688172529-WRITE-283, 37555688206318-WRITE-284, 37555688266521-WRITE-285, 37555688289413-WRITE-286, 37555688367215-WRITE-287, 37555688428584-WRITE-288, 37555688499742-WRITE-289, 37555688553093-WRITE-290, 37555688583213-WRITE-291, 37555688623221-WRITE-292, 37555688672562-WRITE-293, 37555688729777-WRITE-294, 37555688788669-WRITE-295, 37555688810279-WRITE-296, 37555688870991-WRITE-297, 37555688922815-WRITE-298, 37555689001907-WRITE-299, 37555689056092-WRITE-300, 37555689102661-WRITE-301, 37555689130399-WRITE-302, 37555690174992-WRITE-304, 37555689155220-WRITE-303, 37555690266000-WRITE-305, 37555690319565-WRITE-306, 37555690355556-WRITE-307, 37555690398189-WRITE-308, 37555690424247-WRITE-309, 37555690455257-WRITE-310, 37555690527104-WRITE-311, 37555690559752-WRITE-312, 37555690600476-WRITE-313, 37555690646939-WRITE-314, 37555690720598-WRITE-315, 37555690778589-WRITE-316, 37555690825125-WRITE-317, 37555690859249-WRITE-318, 37555690912432-WRITE-319, 37555690978806-WRITE-320, 37555691007940-WRITE-321, 37555691032440-WRITE-322, 37555691105169-WRITE-323, 37555691114429-WRITE-324, 37555691173603-WRITE-325, 37555691194323-WRITE-326, 37555691245071-WRITE-327, 37555691275994-WRITE-328, 37555691327980-WRITE-329, 37555691356802-WRITE-330, 37555691408767-WRITE-331, 37555691465654-WRITE-332, 37555691497910-WRITE-333, 37555691535067-WRITE-334, 37555691570235-WRITE-335, 37555691605207-WRITE-336, 37555691651390-WRITE-337, 37555691702741-WRITE-338, 37555691741970-WRITE-339, 37555691790978-WRITE-340, 37555691844646-WRITE-341, 37555691871766-WRITE-342, 37555691900395-WRITE-343, 37555691924999-WRITE-344, 37555691968321-WRITE-345, 37555692008609-WRITE-346, 37555692061895-WRITE-347, 37555692088525-WRITE-348, 37555692142978-WRITE-349, 37555692172577-WRITE-350, 37555692201513-WRITE-351, 37555692267846-WRITE-352, 37555692297215-WRITE-353, 37555692321819-WRITE-354, 37555692377533-WRITE-355, 37555692417380-WRITE-356, 37555692461840-WRITE-357, 37555692491480-WRITE-358, 37555692518303-WRITE-359, 37555692567176-WRITE-360, 37555692571455-WRITE-361, 37555692631525-WRITE-362, 37555692663698-WRITE-363, 37555692708981-WRITE-364, 37555692742168-WRITE-365, 37555692795051-WRITE-366, 37555692826495-WRITE-367, 37555692849710-WRITE-368, 37555692884907-WRITE-369, 37555692909714-WRITE-370, 37555692933504-WRITE-371, 37555692960443-WRITE-372, 37555693029747-WRITE-373, 37555693068919-WRITE-374, 37555693125685-WRITE-375, 37555693148024-WRITE-376, 37555693203436-WRITE-377, 37555693245510-WRITE-378, 37555693276657-WRITE-379, 37555693306403-WRITE-380, 37555693345793-WRITE-381, 37555693363426-WRITE-382, 37555693392565-WRITE-383, 37555693458286-WRITE-385, 37555693480922-WRITE-386, 37555693490568-WRITE-384, 37555693586201-WRITE-388, 37555693595529-WRITE-389, 37555693593325-WRITE-387, 37555693647535-WRITE-390, 37555693708292-WRITE-391, 37555693735149-WRITE-392, 37555693742119-WRITE-393, 37555693805503-WRITE-395, 37555693831749-WRITE-394, 37555693838734-WRITE-396, 37555693899184-WRITE-397, 37555693970880-WRITE-399, 37555693945759-WRITE-398, 37555694015061-WRITE-400, 37555694058700-WRITE-401, 37555694085727-WRITE-402, 37555694110665-WRITE-403, 37555694148655-WRITE-404, 37555694181165-WRITE-405, 37555694206643-WRITE-406, 37555694243186-WRITE-407, 37555694286268-WRITE-408, 37555694312277-WRITE-409, 37555694333612-WRITE-410, 37555694378671-WRITE-411, 37555694414241-WRITE-412, 37555694448916-WRITE-413, 37555694466814-WRITE-414, 37555694517992-WRITE-415, 37555694561479-WRITE-416, 37555694592943-WRITE-417, 37555694615100-WRITE-418, 37555694646076-WRITE-419, 37555694664818-WRITE-420, 37555694709159-WRITE-421, 37555694748994-WRITE-422, 37555694777479-WRITE-423, 37555694801580-WRITE-424, 37555694858254-WRITE-425, 37555694892595-WRITE-426, 37555694923475-WRITE-427, 37555694960652-WRITE-428, 37555694992144-WRITE-429, 37555695015490-WRITE-430, 37555695067762-WRITE-431, 37555695093968-WRITE-432, 37555695138215-WRITE-433, 37555695156467-WRITE-434, 37555695197534-WRITE-435, 37555695224478-WRITE-436, 37555695254281-WRITE-437, 37555695291109-WRITE-438, 37555695310649-WRITE-439, 37555695350236-WRITE-440, 37555695370848-WRITE-441, 37555695403499-WRITE-442, 37555695454893-WRITE-443, 37555695504463-WRITE-445, 37555695488815-WRITE-444, 37555695526913-WRITE-446, 37555695584195-WRITE-447, 37555695611565-WRITE-448, 37555695639136-WRITE-449, 37555695667139-WRITE-450, 37555695705463-WRITE-451, 37555695735429-WRITE-452, 37555695772774-WRITE-453, 37555695804142-WRITE-454, 37555695840781-WRITE-455, 37555695873267-WRITE-456, 37555695902900-WRITE-457, 37555695934480-WRITE-458, 37555695964436-WRITE-459, 37555695998784-WRITE-460, 37555696047408-WRITE-461, 37555696077795-WRITE-462, 37555696131877-WRITE-463, 37555696150254-WRITE-464, 37555696177794-WRITE-465, 37555696203440-WRITE-466, 37555696232105-WRITE-467, 37555696264937-WRITE-468, 37555696304924-WRITE-469, 37555696317237-WRITE-470, 37555696380715-WRITE-471, 37555696383028-WRITE-472, 37555696404422-WRITE-473, 37555696440054-WRITE-474, 37555696494521-WRITE-475, 37555696514438-WRITE-476, 37555696545105-WRITE-477, 37555696608864-WRITE-478, 37555696613916-WRITE-479, 37555696639193-WRITE-480, 37555696666030-WRITE-481, 37555696714940-WRITE-482, 37555696745350-WRITE-483, 37555696771703-WRITE-484, 37555696819984-WRITE-485, 37555696868661-WRITE-486, 37555696921963-WRITE-487, 37555696990264-WRITE-488, 37555697039326-WRITE-489, 37555697049583-WRITE-490, 37555697078763-WRITE-491, 37555697126571-WRITE-492, 37555697150327-WRITE-493, 37555697180844-WRITE-494, 37555697226957-WRITE-495, 37555697267422-WRITE-496, 37555697306320-WRITE-497, 37555697336728-WRITE-498, 37555697354940-WRITE-499]
all:[37555649338087-WRITE-500, 37555649353676-READ-500, 37555649387666-READ-1, 37555649393140-WRITE-1, 37555649422452-WRITE-2, 37555649447909-READ-2, 37555649692215-WRITE-3, 37555649749490-READ-3, 37555649774822-WRITE-4, 37555649812042-READ-4, 37555649851792-WRITE-5, 37555649871220-READ-5, 37555649893012-WRITE-6, 37555649978733-READ-6, 37555649997637-WRITE-7, 37555650022545-READ-7, 37555650053504-WRITE-8, 37555650081440-READ-8, 37555650147996-WRITE-9, 37555650203548-READ-9, 37555650222762-WRITE-10, 37555650279129-READ-10, 37555650295198-WRITE-11, 37555650362476-READ-11, 37555650386349-WRITE-12, 37555650411422-READ-12, 37555650467795-WRITE-13, 37555650489330-READ-13, 37555650522764-WRITE-14, 37555650577140-READ-14, 37555650597255-WRITE-15, 37555650653486-READ-15, 37555650670064-WRITE-16, 37555653094992-READ-17, 37555653106024-WRITE-17, 37555653140437-READ-17, 37555653178667-WRITE-18, 37555653245979-READ-18, 37555653269090-WRITE-19, 37555653334051-READ-19, 37555653357791-WRITE-20, 37555653395344-READ-20, 37555653421586-WRITE-21, 37555653482904-READ-21, 37555653496436-WRITE-22, 37555653561086-READ-22, 37555653576468-WRITE-23, 37555653632126-READ-23, 37555653647544-WRITE-24, 37555653704793-READ-24, 37555653717571-WRITE-25, 37555653781358-READ-25, 37555653795901-WRITE-26, 37555653852272-READ-26, 37555653864033-WRITE-27, 37555653928350-READ-27, 37555653947274-WRITE-28, 37555654008240-READ-28, 37555654019097-WRITE-29, 37555654084165-READ-29, 37555654097269-WRITE-30, 37555654161970-READ-30, 37555654177407-WRITE-31, 37555654230359-READ-31, 37555654244137-WRITE-32, 37555654305112-READ-32, 37555654317382-WRITE-33, 37555654382979-READ-33, 37555654394817-WRITE-34, 37555654457026-READ-34, 37555654470761-WRITE-35, 37555654530812-READ-35, 37555654544131-WRITE-36, 37555654606190-READ-36, 37555654620834-WRITE-37, 37555654676589-READ-37, 37555654690156-WRITE-38, 37555654751607-READ-38, 37555654764758-WRITE-39, 37555654829373-READ-39, 37555654841850-WRITE-40, 37555654902707-READ-40, 37555656980867-WRITE-41, 37555656982376-READ-41, 37555657002398-WRITE-42, 37555657060324-READ-42, 37555657151554-WRITE-43, 37555657170173-READ-43, 37555657256004-WRITE-44, 37555657274339-READ-44, 37555657328563-WRITE-45, 37555657353234-READ-45, 37555657408498-WRITE-46, 37555657425658-READ-46, 37555657486782-WRITE-47, 37555657502211-READ-47, 37555657558463-WRITE-48, 37555657572011-READ-48, 37555657624545-WRITE-49, 37555657636662-READ-49, 37555657693957-WRITE-50, 37555657711934-READ-50, 37555657735435-WRITE-51, 37555657762024-READ-51, 37555657809943-WRITE-52, 37555657823260-READ-52, 37555657874224-WRITE-53, 37555657885718-READ-53, 37555657942901-WRITE-54, 37555657955254-READ-54, 37555657985536-WRITE-55, 37555658037612-WRITE-56, 37555658080933-READ-56, 37555658100514-WRITE-57, 37555658151690-READ-57, 37555658165671-WRITE-58, 37555658195269-READ-58, 37555658250036-WRITE-59, 37555658269236-READ-59, 37555658290816-WRITE-60, 37555658311203-READ-60, 37555658365487-WRITE-61, 37555658383315-READ-61, 37555658403744-WRITE-62, 37555658428801-READ-62, 37555658480232-WRITE-63, 37555658495913-READ-63, 37555658524578-WRITE-64, 37555658548644-READ-64, 37555658569158-WRITE-65, 37555658620271-READ-65, 37555662152821-WRITE-66, 37555662161286-READ-66, 37555662164807-READ-66, 37555662194850-WRITE-67, 37555662212014-READ-67, 37555662246926-WRITE-68, 37555662333420-READ-68, 37555662384839-WRITE-69, 37555662405673-READ-69, 37555662460210-WRITE-70, 37555662517693-READ-70, 37555662528270-WRITE-71, 37555662598190-READ-71, 37555662618474-WRITE-72, 37555662643772-READ-72, 37555662666830-WRITE-73, 37555662690860-READ-73, 37555662711996-WRITE-74, 37555662765916-READ-74, 37555662783149-WRITE-75, 37555662807301-READ-75, 37555662835460-WRITE-76, 37555662859666-READ-76, 37555662902583-WRITE-77, 37555662923437-READ-77, 37555662989589-WRITE-78, 37555663024445-READ-78, 37555663072477-WRITE-79, 37555663158474-WRITE-80, 37555663167562-READ-80, 37555663182577-READ-80, 37555663218446-WRITE-81, 37555663232899-READ-81, 37555663253421-WRITE-82, 37555663274676-READ-82, 37555663306012-WRITE-83, 37555663390549-READ-83, 37555663416226-WRITE-84, 37555663470885-READ-84, 37555663555580-WRITE-85, 37555663579179-READ-85, 37555663633923-WRITE-86, 37555663652501-READ-86, 37555663720024-WRITE-87, 37555663743968-READ-87, 37555663790312-WRITE-88, 37555663853265-READ-88, 37555663867191-WRITE-89, 37555663942826-READ-89, 37555664006637-WRITE-90, 37555664055521-READ-90, 37555666078816-READ-91, 37555666079498-WRITE-91, 37555666128352-WRITE-92, 37555666131135-READ-92, 37555666226609-WRITE-93, 37555666247026-READ-93, 37555666269569-WRITE-94, 37555666293984-READ-94, 37555666344294-WRITE-95, 37555666364652-READ-95, 37555666383362-WRITE-96, 37555666404331-READ-96, 37555666424016-WRITE-97, 37555666476190-READ-97, 37555666494016-WRITE-98, 37555666541514-READ-98, 37555666559188-WRITE-99, 37555666605914-READ-99, 37555666645995-WRITE-100, 37555666698800-READ-100, 37555666707713-WRITE-101, 37555666774673-READ-101, 37555666819793-WRITE-102, 37555666860390-READ-102, 37555666882645-WRITE-103, 37555666926484-READ-103, 37555666953745-WRITE-104, 37555666978418-READ-104, 37555667004771-WRITE-105, 37555667030243-READ-105, 37555667057819-WRITE-106, 37555667070602-READ-106, 37555667087516-WRITE-107, 37555667144727-READ-107, 37555667186254-WRITE-108, 37555667209066-READ-108, 37555667232163-WRITE-109, 37555667265964-READ-109, 37555667291450-WRITE-110, 37555667342176-READ-110, 37555667358595-WRITE-111, 37555667412745-READ-111, 37555667460157-WRITE-112, 37555667483148-READ-112, 37555667531646-WRITE-113, 37555667547554-READ-113, 37555667568381-WRITE-114, 37555667600430-READ-114, 37555667609512-WRITE-115, 37555667630703-READ-115, 37555669456932-WRITE-116, 37555669466354-READ-116, 37555669540610-WRITE-117, 37555669562439-READ-117, 37555669587752-WRITE-118, 37555669608056-READ-118, 37555669627505-WRITE-119, 37555669707126-READ-119, 37555669743123-WRITE-120, 37555669789125-READ-120, 37555669806342-WRITE-121, 37555669856376-READ-121, 37555669896064-WRITE-122, 37555669938253-READ-122, 37555669957329-WRITE-123, 37555669998164-READ-123, 37555670013578-WRITE-124, 37555670065190-READ-124, 37555670083188-WRITE-125, 37555670158148-READ-125, 37555670175760-WRITE-126, 37555670225226-READ-126, 37555670250934-WRITE-127, 37555670278740-READ-127, 37555670296257-WRITE-128, 37555670327771-READ-128, 37555670342686-WRITE-129, 37555670384829-READ-130, 37555670399021-WRITE-130, 37555670415901-READ-130, 37555670477760-WRITE-131, 37555670507457-READ-131, 37555670520325-WRITE-132, 37555670555398-READ-132, 37555670591279-WRITE-133, 37555670622207-READ-133, 37555670650243-WRITE-134, 37555670699964-READ-134, 37555670710849-WRITE-135, 37555670778079-READ-135, 37555670815987-WRITE-136, 37555670836990-READ-136, 37555670888606-WRITE-137, 37555670904734-READ-137, 37555670933963-WRITE-138, 37555670955316-READ-138, 37555670964477-WRITE-139, 37555671062149-READ-139, 37555671072328-WRITE-140, 37555671148666-READ-140, 37555673201936-WRITE-141, 37555673208244-READ-141, 37555673220263-WRITE-142, 37555673305155-READ-142, 37555673325693-WRITE-143, 37555673352304-READ-143, 37555673370250-WRITE-144, 37555673390744-READ-144, 37555673415674-WRITE-145, 37555673435489-READ-145, 37555673469859-WRITE-146, 37555673488152-READ-146, 37555673520843-WRITE-147, 37555673529629-READ-147, 37555673547415-WRITE-148, 37555673567112-READ-148, 37555673592582-WRITE-149, 37555673605222-READ-149, 37555673703966-WRITE-150, 37555673718619-READ-150, 37555673771129-WRITE-151, 37555673786098-READ-151, 37555673829067-WRITE-152, 37555673841484-READ-152, 37555673908879-WRITE-153, 37555673948972-READ-153, 37555673969152-WRITE-154, 37555674000798-READ-154, 37555674018973-WRITE-155, 37555674106062-READ-155, 37555674127876-WRITE-156, 37555674149627-READ-156, 37555674183490-WRITE-157, 37555674191561-READ-157, 37555674208481-WRITE-158, 37555674228425-READ-158, 37555674336115-WRITE-159, 37555674346781-READ-159, 37555674406617-WRITE-160, 37555674420125-READ-160, 37555674441812-WRITE-161, 37555674469525-READ-161, 37555674502146-WRITE-162, 37555674533220-READ-162, 37555674611156-READ-163, 37555674630873-WRITE-163, 37555674635689-WRITE-164, 37555674668259-READ-164, 37555674680533-WRITE-165, 37555674709671-READ-165, 37555676163710-WRITE-166, 37555676168255-READ-166, 37555676177892-WRITE-167, 37555676195130-READ-167, 37555676213740-WRITE-168, 37555676235372-READ-168, 37555676270183-WRITE-169, 37555676289140-READ-169, 37555676310450-WRITE-170, 37555676400819-READ-170, 37555676412372-WRITE-171, 37555676430563-READ-171, 37555676487172-WRITE-172, 37555676503737-READ-172, 37555676518028-WRITE-173, 37555676536529-READ-173, 37555676557670-WRITE-174, 37555676580107-READ-174, 37555676607159-WRITE-175, 37555676628654-READ-175, 37555676648275-WRITE-176, 37555676678187-READ-176, 37555676697634-WRITE-177, 37555676750989-READ-177, 37555676796816-WRITE-178, 37555676807801-READ-178, 37555676888917-WRITE-179, 37555676899120-READ-179, 37555676918220-WRITE-180, 37555676974494-READ-180, 37555676988125-WRITE-181, 37555677040730-READ-181, 37555677055964-WRITE-182, 37555677108870-READ-182, 37555677133488-WRITE-183, 37555677155592-READ-183, 37555677218226-WRITE-184, 37555677266365-READ-184, 37555677316470-WRITE-185, 37555677333357-READ-185, 37555677350548-WRITE-186, 37555677395423-READ-186, 37555677408136-WRITE-187, 37555677424858-READ-187, 37555677513638-READ-188, 37555677520626-WRITE-188, 37555677585131-WRITE-189, 37555677639552-READ-189, 37555677652380-WRITE-190, 37555677704155-READ-190, 37555679334948-WRITE-191, 37555679354080-READ-191, 37555679380036-WRITE-192, 37555679402295-READ-192, 37555679443956-WRITE-193, 37555679472605-READ-193, 37555679493507-WRITE-194, 37555679513526-READ-194, 37555679537616-WRITE-195, 37555679579166-READ-195, 37555679620868-WRITE-196, 37555679659238-READ-196, 37555679680163-WRITE-197, 37555679749470-READ-197, 37555679811587-WRITE-198, 37555679827641-READ-198, 37555679889881-WRITE-199, 37555679903768-READ-199, 37555679922088-WRITE-200, 37555679945318-READ-200, 37555679970098-WRITE-201, 37555679990536-READ-201, 37555680012833-WRITE-202, 37555680027998-READ-202, 37555680051467-WRITE-203, 37555680069227-READ-203, 37555680115797-WRITE-204, 37555680129845-READ-204, 37555680174585-WRITE-205, 37555680189457-READ-205, 37555680237132-WRITE-206, 37555680253838-READ-206, 37555680286393-WRITE-207, 37555680326754-READ-207, 37555680348255-WRITE-208, 37555680362721-READ-208, 37555680405712-WRITE-209, 37555680457710-READ-209, 37555680470431-WRITE-210, 37555680493809-READ-210, 37555680513012-WRITE-211, 37555680531484-READ-211, 37555680547146-WRITE-212, 37555680567335-READ-212, 37555680636196-WRITE-213, 37555680680664-READ-213, 37555680698173-WRITE-214, 37555680713275-READ-214, 37555680732024-WRITE-215, 37555680751510-READ-215, 37555681927312-WRITE-216, 37555681957709-READ-217, 37555681976408-WRITE-217, 37555681992713-READ-218, 37555682004879-WRITE-218, 37555682030630-READ-218, 37555682097337-WRITE-219, 37555682105572-READ-219, 37555682126973-WRITE-220, 37555682139514-READ-220, 37555682211142-WRITE-221, 37555682225644-READ-221, 37555682282105-WRITE-222, 37555682338693-READ-222, 37555682343993-WRITE-223, 37555682407926-READ-223, 37555682457289-WRITE-224, 37555682475973-READ-224, 37555682515896-WRITE-225, 37555682534599-READ-225, 37555682581612-WRITE-226, 37555682591181-READ-226, 37555682605284-WRITE-227, 37555682624565-READ-227, 37555682654739-WRITE-228, 37555682710538-READ-228, 37555682736295-WRITE-229, 37555682753076-READ-229, 37555682805062-WRITE-230, 37555682819177-READ-230, 37555682844453-WRITE-231, 37555682877345-READ-231, 37555682887405-WRITE-232, 37555682943717-READ-232, 37555682990882-WRITE-233, 37555683008226-READ-233, 37555683051523-WRITE-234, 37555683077836-READ-234, 37555683112874-WRITE-235, 37555683125021-READ-235, 37555683191975-WRITE-236, 37555683206871-READ-236, 37555683244566-WRITE-237, 37555683261269-READ-237, 37555683279838-WRITE-238, 37555683297192-READ-238, 37555683345434-WRITE-239, 37555683388560-READ-239, 37555683413451-WRITE-240, 37555683454481-READ-240, 37555685115023-WRITE-241, 37555685125457-WRITE-242, 37555685125952-READ-242, 37555685141193-READ-242, 37555685193397-WRITE-243, 37555685206271-READ-243, 37555685231905-WRITE-244, 37555685252207-READ-244, 37555685288315-WRITE-245, 37555685312151-READ-245, 37555685329009-WRITE-246, 37555685366231-READ-246, 37555685381149-WRITE-247, 37555685401071-READ-247, 37555685420436-WRITE-248, 37555685441860-READ-248, 37555685475732-WRITE-249, 37555685491444-READ-249, 37555685511770-WRITE-250, 37555685533544-READ-250, 37555685573374-WRITE-251, 37555685587986-READ-251, 37555685601946-WRITE-252, 37555685618005-READ-252, 37555685641460-WRITE-253, 37555685652887-READ-253, 37555685712527-WRITE-254, 37555685730237-READ-254, 37555685770284-WRITE-255, 37555685775963-READ-255, 37555685799950-READ-255, 37555685814464-READ-255, 37555685831730-WRITE-256, 37555685844652-WRITE-258, 37555685880750-WRITE-257, 37555685897823-READ-257, 37555685914600-WRITE-259, 37555685951366-READ-259, 37555685970734-WRITE-260, 37555685979990-READ-260, 37555685997094-WRITE-261, 37555686010301-READ-261, 37555686030789-WRITE-262, 37555686048230-READ-262, 37555686065136-WRITE-263, 37555686089016-READ-263, 37555686134889-WRITE-264, 37555686170432-READ-264, 37555686207247-WRITE-265, 37555686218051-READ-265, 37555687319920-WRITE-267, 37555687336149-READ-267, 37555687345237-WRITE-266, 37555687347640-READ-267, 37555687368207-WRITE-268, 37555687410953-READ-268, 37555687467858-WRITE-269, 37555687478682-READ-269, 37555687490034-WRITE-270, 37555687528298-READ-270, 37555687544673-WRITE-271, 37555687553916-READ-271, 37555687580605-WRITE-272, 37555687603762-READ-272, 37555687622125-WRITE-273, 37555687635773-READ-273, 37555687684467-WRITE-274, 37555687690353-READ-274, 37555687751615-WRITE-275, 37555687759909-READ-275, 37555687778462-WRITE-276, 37555687836738-READ-276, 37555687872874-WRITE-277, 37555687892295-READ-277, 37555687941182-WRITE-278, 37555687951870-READ-278, 37555687977329-WRITE-279, 37555687995412-READ-279, 37555688027210-WRITE-280, 37555688043820-READ-280, 37555688070335-WRITE-281, 37555688113177-READ-281, 37555688121043-WRITE-282, 37555688159453-READ-282, 37555688172529-WRITE-283, 37555688197024-READ-283, 37555688206318-WRITE-284, 37555688243050-READ-284, 37555688266521-WRITE-285, 37555688275784-READ-285, 37555688289413-WRITE-286, 37555688356095-READ-286, 37555688367215-WRITE-287, 37555688413899-READ-287, 37555688428584-WRITE-288, 37555688446379-READ-288, 37555688499742-WRITE-289, 37555688508587-READ-289, 37555688553093-WRITE-290, 37555688566411-READ-290, 37555688583213-WRITE-291, 37555688615945-READ-291, 37555688623221-WRITE-292, 37555688648001-READ-292, 37555688672562-WRITE-293, 37555688687069-READ-293, 37555688729777-WRITE-294, 37555688739957-READ-294, 37555688788669-WRITE-295, 37555688795329-READ-295, 37555688810279-WRITE-296, 37555688821795-READ-296, 37555688870991-WRITE-297, 37555688915865-READ-297, 37555688922815-WRITE-298, 37555688958701-READ-298, 37555689001907-WRITE-299, 37555689011568-READ-299, 37555689056092-WRITE-300, 37555689089632-READ-300, 37555689102661-WRITE-301, 37555689118685-READ-301, 37555689130399-WRITE-302, 37555689155220-WRITE-303, 37555690159719-READ-304, 37555690174992-WRITE-304, 37555690181790-READ-304, 37555690252319-READ-304, 37555690266000-WRITE-305, 37555690310129-READ-305, 37555690319565-WRITE-306, 37555690336213-READ-306, 37555690355556-WRITE-307, 37555690380156-READ-307, 37555690398189-WRITE-308, 37555690418744-READ-309, 37555690424247-WRITE-309, 37555690445358-READ-309, 37555690455257-WRITE-310, 37555690488075-READ-310, 37555690527104-WRITE-311, 37555690539940-READ-311, 37555690559752-WRITE-312, 37555690577596-READ-312, 37555690600476-WRITE-313, 37555690639215-READ-313, 37555690646939-WRITE-314, 37555690667458-READ-314, 37555690720598-WRITE-315, 37555690738730-READ-315, 37555690778589-WRITE-316, 37555690808041-READ-316, 37555690825125-WRITE-317, 37555690846161-READ-317, 37555690859249-WRITE-318, 37555690872996-READ-318, 37555690912432-WRITE-319, 37555690924171-READ-319, 37555690978806-WRITE-320, 37555690987212-READ-320, 37555691007940-WRITE-321, 37555691017619-READ-321, 37555691032440-WRITE-322, 37555691060865-READ-322, 37555691092696-READ-323, 37555691105169-WRITE-323, 37555691114429-WRITE-324, 37555691136093-READ-324, 37555691173603-WRITE-325, 37555691185222-READ-325, 37555691194323-WRITE-326, 37555691223875-READ-326, 37555691245071-WRITE-327, 37555691260786-READ-327, 37555691275994-WRITE-328, 37555691327980-WRITE-329, 37555691330809-READ-329, 37555691344438-READ-329, 37555691356802-WRITE-330, 37555691368237-READ-330, 37555691408767-WRITE-331, 37555691425565-READ-331, 37555691465654-WRITE-332, 37555691486799-READ-332, 37555691497910-WRITE-333, 37555691507071-READ-333, 37555691535067-WRITE-334, 37555691554105-READ-334, 37555691570235-WRITE-335, 37555691586992-READ-335, 37555691605207-WRITE-336, 37555691619755-READ-336, 37555691651390-WRITE-337, 37555691663926-READ-337, 37555691702741-WRITE-338, 37555691720044-READ-338, 37555691741970-WRITE-339, 37555691753708-READ-339, 37555691790978-WRITE-340, 37555691800108-READ-340, 37555691838010-READ-341, 37555691844646-WRITE-341, 37555691871766-WRITE-342, 37555691886531-READ-342, 37555691900395-WRITE-343, 37555691915916-READ-343, 37555691924999-WRITE-344, 37555691940208-READ-344, 37555691968321-WRITE-345, 37555691992149-READ-345, 37555692008609-WRITE-346, 37555692021200-READ-346, 37555692061895-WRITE-347, 37555692070088-READ-347, 37555692088525-WRITE-348, 37555692106729-READ-348, 37555692142978-WRITE-349, 37555692157075-READ-349, 37555692172577-WRITE-350, 37555692184613-READ-350, 37555692201513-WRITE-351, 37555692230113-READ-351, 37555692267846-WRITE-352, 37555692287745-READ-352, 37555692297215-WRITE-353, 37555692321819-WRITE-354, 37555692333089-READ-354, 37555692345114-READ-354, 37555692377533-WRITE-355, 37555692390509-READ-355, 37555692417380-WRITE-356, 37555692445104-READ-356, 37555692461840-WRITE-357, 37555692469377-READ-357, 37555692491480-WRITE-358, 37555692495629-READ-358, 37555692518303-WRITE-359, 37555692524176-READ-359, 37555692550172-READ-360, 37555692567176-WRITE-360, 37555692571455-WRITE-361, 37555692609062-READ-361, 37555692631525-WRITE-362, 37555692652723-READ-362, 37555692663698-WRITE-363, 37555692686334-READ-363, 37555692708981-WRITE-364, 37555692726686-READ-364, 37555692742168-WRITE-365, 37555692759220-READ-365, 37555692780605-READ-366, 37555692795051-WRITE-366, 37555692826495-WRITE-367, 37555692842588-READ-367, 37555692849710-WRITE-368, 37555692862281-READ-368, 37555692884907-WRITE-369, 37555692896642-READ-369, 37555692909714-WRITE-370, 37555692926083-READ-370, 37555692933504-WRITE-371, 37555692948971-READ-371, 37555692960443-WRITE-372, 37555693022811-READ-372, 37555693029747-WRITE-373, 37555693059627-READ-373, 37555693068919-WRITE-374, 37555693079615-READ-374, 37555693125685-WRITE-375, 37555693141277-READ-376, 37555693148024-WRITE-376, 37555693189926-READ-376, 37555693203436-WRITE-377, 37555693221962-READ-377, 37555693245510-WRITE-378, 37555693257904-READ-378, 37555693276657-WRITE-379, 37555693296935-READ-379, 37555693306403-WRITE-380, 37555693328084-READ-380, 37555693345793-WRITE-381, 37555693349764-READ-381, 37555693363426-WRITE-382, 37555693377993-READ-382, 37555693392565-WRITE-383, 37555693427059-READ-384, 37555693454951-READ-385, 37555693458286-WRITE-385, 37555693480922-WRITE-386, 37555693484467-READ-386, 37555693490568-WRITE-384, 37555693498353-READ-386, 37555693555860-READ-388, 37555693582917-READ-388, 37555693586201-WRITE-388, 37555693593325-WRITE-387, 37555693595529-WRITE-389, 37555693617420-READ-389, 37555693647535-WRITE-390, 37555693664926-READ-390, 37555693708292-WRITE-391, 37555693720492-READ-392, 37555693735149-WRITE-392, 37555693742119-WRITE-393, 37555693745640-READ-393, 37555693758379-READ-396, 37555693782803-READ-396, 37555693805503-WRITE-395, 37555693831749-WRITE-394, 37555693836001-READ-396, 37555693838734-WRITE-396, 37555693862129-READ-396, 37555693899184-WRITE-397, 37555693939900-READ-398, 37555693945759-WRITE-398, 37555693953337-READ-398, 37555693970880-WRITE-399, 37555693998000-READ-399, 37555694015061-WRITE-400, 37555694031953-READ-400, 37555694058700-WRITE-401, 37555694070160-READ-401, 37555694085727-WRITE-402, 37555694096678-READ-402, 37555694110665-WRITE-403, 37555694133936-READ-403, 37555694148655-WRITE-404, 37555694179206-READ-405, 37555694181165-WRITE-405, 37555694206643-WRITE-406, 37555694209083-READ-406, 37555694239494-READ-406, 37555694243186-WRITE-407, 37555694269416-READ-407, 37555694286268-WRITE-408, 37555694303246-READ-408, 37555694312277-WRITE-409, 37555694323976-READ-409, 37555694333612-WRITE-410, 37555694367254-READ-410, 37555694378671-WRITE-411, 37555694405085-READ-411, 37555694414241-WRITE-412, 37555694432457-READ-412, 37555694448916-WRITE-413, 37555694465669-READ-414, 37555694466814-WRITE-414, 37555694488224-READ-414, 37555694517992-WRITE-415, 37555694548057-READ-415, 37555694561479-WRITE-416, 37555694571830-READ-416, 37555694592943-WRITE-417, 37555694604413-READ-417, 37555694615100-WRITE-418, 37555694637723-READ-419, 37555694646076-WRITE-419, 37555694653195-READ-419, 37555694664818-WRITE-420, 37555694702100-READ-420, 37555694709159-WRITE-421, 37555694728631-READ-421, 37555694748994-WRITE-422, 37555694762166-READ-422, 37555694777479-WRITE-423, 37555694783482-READ-423, 37555694801580-WRITE-424, 37555694840246-READ-424, 37555694858254-WRITE-425, 37555694877943-READ-425, 37555694892595-WRITE-426, 37555694904903-READ-426, 37555694923475-WRITE-427, 37555694936267-READ-427, 37555694960313-READ-428, 37555694960652-WRITE-428, 37555694992144-WRITE-429, 37555694998653-READ-429, 37555695015490-WRITE-430, 37555695031311-READ-430, 37555695067762-WRITE-431, 37555695079885-READ-431, 37555695093968-WRITE-432, 37555695116434-READ-432, 37555695138215-WRITE-433, 37555695144430-READ-433, 37555695156467-WRITE-434, 37555695173125-READ-434, 37555695197534-WRITE-435, 37555695210916-READ-435, 37555695224478-WRITE-436, 37555695245058-READ-436, 37555695254281-WRITE-437, 37555695268411-READ-437, 37555695291109-WRITE-438, 37555695299951-READ-438, 37555695310649-WRITE-439, 37555695332311-READ-439, 37555695350236-WRITE-440, 37555695358179-READ-440, 37555695370848-WRITE-441, 37555695384819-READ-441, 37555695403499-WRITE-442, 37555695408855-READ-442, 37555695454893-WRITE-443, 37555695467788-READ-443, 37555695488815-WRITE-444, 37555695493317-READ-444, 37555695504463-WRITE-445, 37555695516308-READ-445, 37555695526913-WRITE-446, 37555695548787-READ-446, 37555695584195-WRITE-447, 37555695600546-READ-447, 37555695611565-WRITE-448, 37555695621329-READ-448, 37555695639136-WRITE-449, 37555695656920-READ-449, 37555695667139-WRITE-450, 37555695679978-READ-450, 37555695705463-WRITE-451, 37555695719527-READ-451, 37555695735429-WRITE-452, 37555695765173-READ-452, 37555695772774-WRITE-453, 37555695792779-READ-454, 37555695804142-WRITE-454, 37555695826127-READ-454, 37555695840781-WRITE-455, 37555695857252-READ-456, 37555695872882-READ-456, 37555695873267-WRITE-456, 37555695902900-WRITE-457, 37555695918369-READ-457, 37555695934480-WRITE-458, 37555695955877-READ-458, 37555695964436-WRITE-459, 37555695983967-READ-459, 37555695998784-WRITE-460, 37555696024691-READ-460, 37555696047408-WRITE-461, 37555696060446-READ-461, 37555696077795-WRITE-462, 37555696103733-READ-462, 37555696131877-WRITE-463, 37555696134344-READ-463, 37555696150254-WRITE-464, 37555696177794-WRITE-465, 37555696200825-READ-466, 37555696203440-WRITE-466, 37555696207149-READ-466, 37555696221322-READ-466, 37555696232105-WRITE-467, 37555696247688-READ-467, 37555696264937-WRITE-468, 37555696277797-READ-468, 37555696304924-WRITE-469, 37555696308166-READ-469, 37555696317237-WRITE-470, 37555696334298-READ-470, 37555696366255-READ-471, 37555696380715-WRITE-471, 37555696383028-WRITE-472, 37555696396308-READ-472, 37555696404422-WRITE-473, 37555696420979-READ-473, 37555696440054-WRITE-474, 37555696470267-READ-474, 37555696494521-WRITE-475, 37555696494918-READ-475, 37555696514438-WRITE-476, 37555696538315-READ-476, 37555696545105-WRITE-477, 37555696557676-READ-477, 37555696602085-READ-478, 37555696608864-WRITE-478, 37555696613916-WRITE-479, 37555696622012-READ-479, 37555696639193-WRITE-480, 37555696659845-READ-481, 37555696666030-WRITE-481, 37555696685925-READ-481, 37555696714940-WRITE-482, 37555696730448-READ-482, 37555696745350-WRITE-483, 37555696762071-READ-483, 37555696771703-WRITE-484, 37555696807396-READ-484, 37555696819984-WRITE-485, 37555696862298-READ-486, 37555696868661-WRITE-486, 37555696916363-READ-486, 37555696921963-WRITE-487, 37555696938409-READ-487, 37555696990264-WRITE-488, 37555696998784-READ-488, 37555697039326-WRITE-489, 37555697041343-READ-489, 37555697049583-WRITE-490, 37555697065681-READ-490, 37555697078763-WRITE-491, 37555697116019-READ-491, 37555697126571-WRITE-492, 37555697135137-READ-492, 37555697150327-WRITE-493, 37555697170654-READ-493, 37555697180844-WRITE-494, 37555697208021-READ-494, 37555697226957-WRITE-495, 37555697239735-READ-495, 37555697267422-WRITE-496, 37555697277156-READ-496, 37555697306320-WRITE-497, 37555697322796-READ-497, 37555697336728-WRITE-498, 37555697342444-READ-498, 37555697354940-WRITE-499, 37555697363625-READ-499]

Process finished with exit code 0

很遗憾没能较为明显的对比出差异

结论

putOrderedInt方法执行后的值,对于多线程读取是否存在由于懒惰顺序写入而产生较为明显的延迟?
答案:否

总结

懒惰原子方法执行结果与正常的原子方法执行结果类似,但是足以验证得出我们问题的答案。对比代码的结果没有明显的差异,3种可能:

  1. 二者本身就极具相似性,无法展现出较为明显差异现象
  2. jdk提供的API不足以使我们写出二者方法差异性的比对效果
  3. 我们的比对代码有问题,需要再去思考下如果重写比对代码

对比汇编指令差异,可以看到set操作加了lock锁,lazySet没有,而lock锁的含义是什么呢?DougLea大神在下面的文章中有讲到:lazySet提供一个store store屏障(在当代系统中是很低成本的操作,或者说没有操作),但是没有store load屏障(这通常是volatile写入动作最昂贵的部分)。
Doug Lea:https://bugs.java.com/bugdatabase/view_bug.do?bug_id=6275329

-server -XX:+UnlockDiagnosticVMOptions -XX:+TraceClassLoading  -XX:+PrintAssembly -XX:+LogCompilation  -XX:+DebugNonSafepoints  -XX:LogFile=LazySetTest.log -Xcomp
package com.gallant.test;

import java.util.concurrent.atomic.AtomicInteger;

/**
 * @author : 会灰翔的灰机
 * @date : 2021/2/17
 */
public class LazySetTest {
    

  private final static AtomicInteger AI = new AtomicInteger();

  public static void main(String[] args) {
    
    for (int i = 0; i < 100000000; i++) {
    
      AI.set(10);
    }
  }

}

1

package com.gallant.test;

import java.util.concurrent.atomic.AtomicInteger;

/**
 * @author : 会灰翔的灰机
 * @date : 2021/2/17
 */
public class LazySetTest2 {
    

  private final static AtomicInteger AI = new AtomicInteger();

  public static void main(String[] args) {
    
    for (int i = 0; i < 100000000; i++) {
    
      AI.lazySet(11);
    }
  }

}

2

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u010597819/article/details/113922471

智能推荐

iOS动手做一个直播(原理篇)_小哥xiaog的博客-程序员宅基地

原文出处: 夜3033   开篇传输简单示意图上篇文章主要给出了代码,但是并没有详细说明直播相关的知识,这篇文章就说一下直播的相关理论知识。附上直播代码篇地址。推流腾讯直播平台,阿里直播平台,百度直播平台提供均为RTMP的推流和HLS/RTMP等拉流.推流是一个直播不可缺少的成分,说起推流都会说基于RTMP协议,那什么是RTMP呢?RTM

mybatis- resultMap_三分迷惘的博客-程序员宅基地

resultTyperesultType可以把查询结果封装到pojo类型中,但必须pojo类的属性名和查询到的数据库表的字段名一致。 如果sql查询到的字段与pojo的属性名不一致,则需要使用resultMap将字段名和属性名对应起来,进行手动配置封装,将结果映射到pojo中resultMapresultMap可以实现将查询结果映射为复杂类型的pojo,比如在查询结果映射对象中包括po...

Delphi中TWebBrowser中注入Js_Golden_soft的博客-程序员宅基地

Delphi中TWebBrowser中注入Js2013年11月27日 22:32:58 一剑平江湖 阅读数:1626最近帮朋友做一个软件,其中要自动化某网页中的操作,最简的操作是调用自己写的代码。代码如下:procedure TForm1.Button2Click(Sender: TObject);var i:integer; h:IHTMLHeaderElemen...

linux shell编程_九层台的博客-程序员宅基地

shift 命令行参数右移 sheft [email protected]:~/桌面# sh test1 dadsada 12dadsada 1212#!/bin/bashecho &quot;$*&quot;shift 1echo &quot;$1&quot;$* 获取命令行输入的所有参数,$1到9获取命令行输入的第一到9个参数 这些参数成为位置参数用set指令可以设置位置参数的内容#!/bin/...

android仿ios菊花,android仿IOS 旋转菊花Loading、等待Loading、花瓣_打盹儿的番茄的博客-程序员宅基地

好久没写博客了,每天都在不停的进步着,今天给大家带来的是仿菊花loading,在百度看了许多,大部分都是通过图片的方式实现的,那么我现在是通过自定义view的方式实现的,废话也不多说了,就在代码中注释讲解。本文地址:http://blog.csdn.net/qq_29849667/article/details/53446911/*** Created by Sick on 2016/12/2....

Leetcode724. 寻找数组的中心索引(C++) [简单]_肖肖爱学习的博客-程序员宅基地

题目描述给定一个整数类型的数组nums,请编写一个能够返回数组 “中心索引” 的方法。我们是这样定义数组 中心索引 的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个题目链接:https://leetcode-cn.com/problems/find-pivot-index注意:第二次循环的时候i是可以从0到nums.length()-1的,这两种情况下只要满足left.

随便推点

C++高级——bind和function联动实现微线程池_shenmingik的博客-程序员宅基地

bind昨天有粉丝问我,bind1st和bind有啥区别?今天就来简单讲讲。bind1st和bind2nd在STL中主要用于二元函数对象,将其中的一元绑定成一个固定的量,成为一元函数变量。在C++11标准中,这两位因为不够灵活,所以已经被bind所取代。bind起源于非标准boost库,在c++11标准中正式纳入标准库,其更加灵活,最多可以绑定20个函数对象的参数。bind的用法先随便整上点函数:void hello(string str) { cout &lt;&lt; str &lt;

linux dialog详解(图形化shell)_weixin_33920401的博客-程序员宅基地

liunx 下的dialog 工具是一个可以和shell脚本配合使用的文本界面下的创建对话框的工具。每个对话框提供的输出有两种形式:1.将所有输出到stderr输出,不显示到屏幕。2.使用退出状态码,“OK”为0,“NO”为1,"ESC"为255通用选项 common options:(这个选项来设置dialog box的背景,颜色和 标题等)[--title ...

matlab 向量去除空格,MATLAB向量_云集山人的博客-程序员宅基地

行向量列向量MATLAB 行向量:创建行向量括在方括号中的元素的集合,用空格或逗号分隔的元素。r = [7 8 9 10 11]执行上述语句,返回下述结果:r =Columns 1 through 47 8 9 10Column 511MATLAB 列向量:创建列向量括在方括号中的元素的集合,使用分号来分隔的元素。c = ...

C# DatrgridView表格控件的一些用法_weixin_33717117的博客-程序员宅基地

public class useDatrgrivView { string conn = null; string sqlComm = null; DataSet das = null; DataGridView GridView = null; //初始化,绑定 publ...

【C基础练习题】Week9:凯撒密码 | 按空格切分字符串 | 单词折半拆分_柠檬叶子C的博客-程序员宅基地

C语言基础练习题系列,包含题目的详细描述和解析。适合C语言新手练习,有利于巩固语法和学习基础的算法。

python小游戏源代码pygame_python pygame实现五子棋小游戏_weixin_39609822的博客-程序员宅基地

import pygame# 导入pygame模块print(pygame.ver)# 检查pygame的版本,检查pygame有没有导入成功EMPTY = 0BLACK = 1WHITE = 2# 定义三个常量函数,用来表示白棋,黑棋,以及 空black_color = [0, 0, 0]# 定义黑色(黑棋用,画棋盘)white_color = [255, 255, 255]# 定义白色(白棋用...