多线程

来源:互联网 发布:淘宝花呗分期付款 编辑:程序博客网 时间:2024/06/10 15:33
线程的概述进程:代表了内存中的执行区域,负责了这个程序的内存空间分配线程:一个进程中负责一个执行路径CPU的分时机制,循环获得自己的CPU时间片。多线程的好处:1解决了一个进程里面可以同时运行多个任务,多个执行路径2提供资源的利用率,而不是提供效率弊端:1降低了一个进程里面的线程执行频率2对线程进行管理需要额外的CPU开销,会给系统上下文切换带来额外的负担3共有变量同时读写,会造成线程安全问题4线程的死锁。较长时间的等待或资源竞争等创建多线程一1继承Thread类2然后复写里面的run()方法3调用父类的start()方法启动线程常见线程的方法Thread(String name)初始化线程的名字getName()返回线程的名字setName(String name)设置线程对象名sleep()线程睡眠的毫秒数getPriority()线程的优先级别,默认为5setPriority(int newPriority)设置线程的优先级 最大为10,最小为1currentThread返回cpu正在执行的线程对象二定义一个类,继承Runnable接口然后将该对象实例化后的对象传给Thread构造函数因为Thread继承自Runnable,会调用run()方法锁对象防止出现死锁线程间的通信多个线程操作同一个资源生产者和消费者实现方法java通过Object类的wait,notify,notifyAll 来实现线程间的同信wait告诉当前线程放弃执行权,放弃监视器(锁),进入阻塞状态知道其他对象调用notify为止notify唤醒等待的线程notifyAll唤醒同一监视器中调用wait的所有的线程wait是Object的方法sleep是Thread的方法stop方法已经过时使用标记来停止线程JoinThread jt = new JoinThread();Thread th = new Thread(jt, "one");th.start();one线程不执行完,主线程会一直等待
0 0