-
Thread 线程常用方法查看全部
-
例子 好生动形象哦查看全部
-
不能用stop停止正在执行的线程,否则会让程序戛然而止,导致有些工作还没有完成程序就终止运行。查看全部
-
join方法可中断其它线程的执行,等待调用join方法的线程结束,即使是主线程main也会被中断 join()的作用是:“等待该线程终止”,这里需要理解的就是该线程是指的主线程等待子线程的终止。也就是在子线程调用了join()方法后面的代码,只有等到子线程结束了才能执行。查看全部
-
volatile 关键字 保证了线程可以正确地读取其他线程写入的值,如果不写成volatile,由于可见性的问题,当前线程有可能不能读到这个值//可见性JMM(JAVA内存模型)happens-before原则、可见性原则 用volatile修饰的变量,线程在每次使用变量的时候,都会读取变量修改后的值 Thread.yield();//让出处理器时间,公平竞争查看全部
-
三个对象查看全部
-
进程:程序(任务)的执行过程 动态性 持有资源(共享内存,共享文件)和线程 线程是系统最小的执行单元 同一进程中有多个线程 线程共享进程的资源 线程的交互:互斥和同步查看全部
-
1.进程: 程序(任务)的执行过程(动态性) 持有资源(共享内存和文件)和线程;线程的载体 2.线程:是系统中最小的执行单元;同一进程中有多个线程;线程共享进程的资源 3.线程交互的方式:互斥;同步查看全部
-
继承Thread类: class MyThread extends Thread{} Thread myThread = new MyThread(); getName()获取当前线程的名称 实现Runnable接口: class MyRunnable implements Runnable{} Thread myRunnable = new Thread(new MyRunnable(),"进程名"); myRunnable.start(); Thread.currentTread().getName() 获取当前线程的名称查看全部
-
推荐书籍--针对并发查看全部
-
1.Java Memory Mode:JMM 描述了Java线程如果通过内存进行交互; happens-before原则; synchronized/volatile/final关键字实现 2.Locks&Condition:Java5.0以后 Java锁机制和等待条件的高层实现; 了解程序加锁和通信; 3.线程安全性: 原子性与可见性,通过atomic包避免原子性变成问题,一个原子由多个操作语句构成时通过synchronized实现原子性; synchronized&volatile 实现可见性; DeadLocks死锁及其产生条件,进而书写避免死锁线程; 4.多线程编程常用的交互模型: Producer-Consumer Read-Write Lock Future Worker Thread 5.Java5中并发编程工具 java.util.concurrent; 线程池ExecutorService; Callable & Future; BlockingQueue;查看全部
-
1.互斥的实现:对关键数据加锁 2.同步的实现:wait(),notify(),notifyAll()--Object 3.Wait Set: 类似于线程的休息室,访问共享数据的代码称为critical section(锁资源)。一个线程获取锁,然后进入临界区 ,发现某些条件不满足,然后调用锁对象上的wait方法,然后线程释放掉锁资源,进入锁对象上的wait set。其他线程可以获取锁资源,执行,以后调用notify(唤醒某个wait set中的线程)/notifyAll(唤醒wait set中的所有线程),通知锁对象上的等待线程。查看全部
-
Thread类常用方法查看全部
-
1.互斥:同一时间,只能有一个线程访问数据 2.同步:通信机制;一个线程完成,以某种方式通知其他线程 3.锁的概念:private final Object lockObj = new Object(); 4.互斥实现方式:synchronized关键字 sychronized(lockObj){---执行代码----}加锁操作 lockObj.wait();线程等待状态,以避免线程持续申请锁,不去竞争cpu资源 lockObj.notifyAll();唤醒所有lockObj对象上等待的线程查看全部
-
争用条件:当多个线程同时共享访问同一数据(内存区域)时,每个线程都尝试操作该数据,从而导致数据被破坏,这种现象称为争用条件查看全部
举报
0/150
提交
取消