当前位置: 首页 > news >正文

政府专题网站模板新闻式软文经典案例

政府专题网站模板,新闻式软文经典案例,网站建设公司浩森宇特,设计素材的网站多线程基础 继承Thread类 定义一个类继承自 Thread 类,重写 run 方法。在 run 方法中编写线程要执行的任务逻辑。例如: java class MyThread extends Thread { Override public void run() { System.out.println("线程执行的任务…

多线程基础
继承Thread类
定义一个类继承自 Thread 类,重写 run 方法。在 run 方法中编写线程要执行的任务逻辑。例如:
java  
class MyThread extends Thread {
    @Override
    public void run() {
        System.out.println("线程执行的任务");
    }
}
 
通过创建该类的实例,然后调用 start 方法来启动线程,如 new MyThread().start(); 。
实现Runnable接口
定义一个类实现 Runnable 接口,实现 run 方法。例如:
java  
class MyRunnable implements Runnable {
    @Override
    public void run() {
        System.out.println("实现Runnable接口的线程任务");
    }
}
 
然后通过 Thread 类来启动线程,如 new Thread(new MyRunnable()).start(); 。这种方式更灵活,因为 Runnable 接口可以被多个类实现,并且可以通过同一个 Runnable 实例来启动多个线程。
线程池的使用
创建线程池
Java提供了 ExecutorService 接口和其实现类来管理线程池。可以使用 Executors 工厂类来创建不同类型的线程池。例如,创建一个固定大小的线程池:
java  
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ThreadPoolExample {
    public static void main(String[] args) {
        ExecutorService executor = Executors.newFixedThreadPool(5);
        for (int i = 0; i < 10; i++) {
            executor.execute(() -> {
                System.out.println("线程池中的线程执行任务");
            });
        }
        executor.shutdown();
    }
}
 
这里创建了一个固定大小为5的线程池,提交了10个任务。线程池会自动管理线程的复用,提高线程的使用效率,减少线程创建和销毁的开销。
并发集合类的使用
 ConcurrentHashMap 
这是一个线程安全的哈希表。在多线程环境下,多个线程可以同时访问和修改 ConcurrentHashMap 而不会出现数据不一致的问题。例如:
java  
import java.util.concurrent.ConcurrentHashMap;
public class ConcurrentHashMapExample {
    public static void main(String[] args) {
        ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<>();
        // 多个线程可以安全地调用put和get方法
        map.put("key", 1);
        System.out.println(map.get("key"));
    }
}
 
 CopyOnWriteArrayList 和 CopyOnWriteArraySet 
这些集合类在修改时会复制整个底层数组,适合读多写少的场景。例如, CopyOnWriteArrayList :
java  
import java.util.concurrent.CopyOnWriteArrayList;
public class CopyOnWriteArrayListExample {
    public static void main(String[] args) {
        CopyOnWriteArrayList<String> list = new CopyOnWriteArrayList<>();
        list.add("元素");
        // 多个线程可以安全地读取列表元素
        for (String element : list) {
            System.out.println(element);
        }
    }
}
 
锁机制
 synchronized 关键字
可以用于修饰方法或者代码块。当一个线程访问被 synchronized 修饰的方法或者代码块时,其他线程需要等待该线程释放锁才能访问。例如:
java  
public class SynchronizedExample {
    private int count = 0;
    public synchronized void increment() {
        count++;
    }
    public static void main(String[] args) {
        SynchronizedExample example = new SynchronizedExample();
        // 多个线程访问increment方法会互斥
        Thread thread1 = new Thread(() -> {
            for (int i = 0; i < 1000; i++) {
                example.increment();
            }
        });
        Thread thread2 = new Thread(() -> {
            for (int i = 0; i < 1000; i++) {
                example.increment();
            }
        });
        thread1.start();
        thread2.start();
        try {
            thread1.join();
            thread2.join();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println(example.count);
    }
}
 
 ReentrantLock 
这是一个可重入锁,提供了比 synchronized 更灵活的锁机制。例如:
java  
import java.util.concurrent.locks.ReentrantLock;
public class ReentrantLockExample {
    private int count = 0;
    private ReentrantLock lock = new ReentrantLock();
    public void increment() {
        lock.lock();
        try {
            count++;
        } finally {
            lock.unlock();
        }
    }
    // 主方法和上面synchronized示例类似,用于测试
}
 
它可以实现公平锁和非公平锁,还可以通过 tryLock 方法尝试获取锁而不阻塞线程,提供了更多的控制功能。
原子类
例如 AtomicInteger 、 AtomicLong 等。这些原子类提供了原子操作,在多线程环境下可以保证操作的原子性。例如:
java  
import java.util.concurrent.atomic.AtomicInteger;
public class AtomicIntegerExample {
    private AtomicInteger count = new AtomicInteger(0);
    public void increment() {
        count.incrementAndGet();
    }
    // 主方法和前面类似,用于测试
}
 
 
原子类内部使用了CAS(比较并交换)操作来保证原子性,避免了使用锁带来的性能开销和死锁等问题。

http://www.shuangfujiaoyu.com/news/63493.html

相关文章:

  • 哪个网站注册域名好百度实名认证
  • 企业网站建设服务网络推广的渠道有哪些
  • 镇江百度网站东莞关键词seo
  • b2c购物网站建设产品线上营销有哪些方式
  • 刚做的网站搜全名查不到免费模板
  • 怎么样建设个人网站网络搭建是干什么的
  • 建设部证书查询网站吸引人的推广标题
  • 做购物网站需要学哪些常德政府网站市民留言
  • 360网站地图怎么做网站建站价格
  • 做服装行业网站想要推广网页
  • 宁波做网站定制企业营销策划书范文
  • 长春做网站团队广州seo顾问服务
  • 网站后台管理的超链接怎么做注册网站平台
  • 做本地网站应该选什么内容深圳整站seo
  • 我国档案网站建设淘客推广
  • 安阳网站如何创建个人网页
  • 嘉兴公司做网站如何在百度免费发布广告
  • 新余网站开发天津网站建设开发
  • 网上做批发有哪些网站有哪些郑州百度推广公司电话
  • 中国十大品牌网站怎么做网络平台
  • 高校信息化建设网站系统微信网站设计费用
  • 建永久网站星沙网站优化seo
  • 网站建设叫什么软件企业网站优化软件
  • 黑群晖架设wordpress网站优化 秦皇岛
  • 淄博周村专业网站建设公司网络营销是学什么
  • python兼职网站开发站长平台网站
  • 网站中的搜索框图标怎么做的网站免费网站免费
  • 注册公司最好用老年人深圳关键词优化报价
  • 网站开发什么开发语言好做网页
  • 网站域名可以更换吗百度官网地址