zoukankan      html  css  js  c++  java
  • 一个关于多个线程执行同一个操作(插入数据)用锁控制重复插入的实例

    public class ThreadInsert {

    public static void main(String[] args) {
    final ThreadInsert cuijimanageServiceImpl=new ThreadInsert();
    final List<String> strList=new ArrayList<String>();
    strList.add("0");
    Thread thread1= new Thread(){
    @Override
    public void run() {
    cuijimanageServiceImpl.show(strList);
    }
    };
    Thread thread2= new Thread(){
    @Override
    public void run() {
    cuijimanageServiceImpl.show(strList);
    }
    };

    Thread thread3= new Thread(){
    @Override
    public void run() {
    cuijimanageServiceImpl.show(strList);
    }
    };
    Thread thread4= new Thread(){
    @Override
    public void run() {
    cuijimanageServiceImpl.show(strList);
    }
    };
    Thread thread5= new Thread(){
    @Override
    public void run() {
    cuijimanageServiceImpl.show(strList);
    }
    };
    Thread thread6= new Thread(){
    @Override
    public void run() {
    cuijimanageServiceImpl.show(strList);
    }
    };

    thread1.start();
    thread2.start();
    thread3.start();
    thread4.start();
    thread5.start();
    thread6.start();

    try {
    thread1.join();
    thread2.join();
    thread3.join();
    thread4.join();
    thread5.join();
    thread6.join();

    } catch (InterruptedException e) {
    e.printStackTrace();
    }

    System.out.println(strList);

    }
    public void show( List<String> strList){
    int size = strList.size();
    if(size<2){
    synchronized (this){
    if(strList.size()<2){
    try {
    Thread.sleep(1000);
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    strList.add("test");
    }
    }
    }
    }
    public void show1( List<String> strList){
    int size = strList.size();
    if(size<2){
    try {
    Thread.sleep(1000);
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    strList.add("test");
    }
    }
    }

  • 相关阅读:
    5.21 CSS样式表练习
    5.20 c#验证码练习
    5.20 邮箱注册,及网页嵌套,知识点复习
    5.19 网页注册练习
    5.19练习标签及其 定义
    5.16 兔子生兔子,日期时间练习
    5.15 复习;共5题
    5.11 集合 与 特殊集合
    5.11 集合与特殊集合
    WinForm1
  • 原文地址:https://www.cnblogs.com/zhaoblog/p/7151196.html
Copyright © 2011-2022 走看看