-
多线程推荐书籍
查看全部 -
java5中并发编程工具
查看全部 -
多线程编程常用的交互模型
查看全部 -
线程安全性
查看全部 -
java多线程
查看全部 -
如何扩展java并发的知识
查看全部 -
查看全部
-
正确停止线程的方法是,在线程执行中设置状态标识,通过控制此状态标识,来控制线程的正常完整的结束,另外,volatile关键字是保证线程变量对外可见的标志,通过此关键字修饰的状态变量,才能在别的线程中被正确的赋值。
查看全部 -
通过线程的方法来控制线程
start()开始线程。
sleep()方法可以使线程休眠。
yield()让出当前线程的执行权限,随机选择线程执行。
join()优先执行该线程,其他线程都暂停。查看全部 -
Runable对象来创建线程:Thread yy=new Thread(ttt,"线程对象创建方法二") ttt是Runable接口创建的对象。
1.加入join是为了让舞台线程最后停止,如果不加有可能舞台线程结束,军队线程还未停止,就好比导演喊停,演员还在演!可以在join后面加入测试语句System.out.println("舞台结束!");,然后去掉或者保留join观察效果。
2.volatile 关键字 保证了线程可以正确地读取其他线程写入的值,如果不写成volatile,由于可见性的问题,当前线程有可能不能读到这个值//可见性JMM(JAVA内存模型)happens-before原则、可见性原则
用volatile修饰的变量,线程在每次使用变量的时候,都会读取变量修改后的值
3.Thread.yield();//让出处理器时间,公平竞争查看全部 -
在同一时间,同一处理器或同一个核只能运行一条线程,当一条线程休眠之后,另一条线程才获得了我们处理器的时间
每一个java文件中只能有一个public类
两种方法实现线程:
1、继承 Thread 类
class MyThread extends Thread{};
Thread myThread = new MyThread();
myThread.start();
2、实现Runnable接口
class MyRunnable implements Runnable{}
Thread myRunnable = new Thread(new MyRunnable);
myRunnable.start();
3、Thread启动后执行run()方法
4、若实现接口通过Thread.currentThread().getName()方法获取当前线程名称,继承Thread则getName()方法获取当前线程。
Thread类的方法:
.getName() 返回线程的名字
.setName(String Name) 改变线程的名字
.start() 使该线程开始执行,Java 虚拟机调用该线程的 run 方法。
.sleep(long millis) 在指定的毫秒数内让当前正在执行的线程休眠(暂停执行),此操作受到系统计时器和调度程序精度和准确性的影响。线程不丢失任何监视器的所属权。
.currentThreat() 返回对当前正在执行的线程对象的引用。(静态方法,返回Thread类型)查看全部 -
Thread常用方法
sleep(long millis, int nanos) 线程休眠 millis休眠的时间,单位是毫秒,可以精确到纳秒
join(long millis, int nanos) 调用线程 可以让其它线程等待自己运行,直到结束
static void yield() 当前运行线程释放处理器资源并且重新去竞争处理器资源
static Thread currentThread() 返回当前正在处理器上运行的线程的引用
重载的几个形式
1.没有参数,指明了其它的线程一定要等待正在执行的线程执行完毕之后,都会获得运行的机会
2.nanos是要把精确度改变,可改成纳秒查看全部 -
程序是指令、数据及其组织形式的描述,进程是程序的实体。
一、进程是:1、程序(任务)的执行过程。进程是动态性的,放在磁盘文件中的文件并不是进程,只有在运行状态的才可称之为进程。2.组成部分:持有资源(共享内存,共享文件)和线程。进程是资源和线程的载体,是系统进行资源分配和调度的基本单位。
二、线程是:1.线程是系统中最小的执行单元 2.同一进程中有多个线程 3.线程共享进程的资源进程和线程的关系:一对多,同一进程可以拥有多个线程
三、线程的交互:1、多个线程需要正确的通信才能进行工作 2、交互方式:互斥和同步两种。查看全部 -
Thread常用方法
查看全部 -
当线程中使用sleep()或者join()方法时,外部代码再使用interrupt()方法中断该线程时,sleep()或者join()方法会抛出异常。并且isinterrupt()方法不能正确返回一个布尔值。
查看全部
举报