Java线程 |
您所在的位置:网站首页 › java创建线程的方法有 › Java线程 |
多线程的优缺点
多线程的优点
提高了CPU的使用率;改善程序结构,使复杂的程序分为多个线程独立运行;提高了程序的响应;
多线程的缺点
对共享资源进行访问时容易出现线程安全问题;增加了线程,对CPU的要求相应提高;占用了更多的内存;
线程安全的解决方案
解决线程安全的办法就是给共享资源加锁,使同时只能有一个线程进入到共享资源中; 通过关键字synchronized加锁synchronized有两种使用方法,一种是给代码块加锁,另一种是给方法加锁; synchronized对代码块儿加锁同步锁必须是两个线程的共同对象, 如实现Runnable接口的任务对象; synchronized对方法加锁 非静态方法默认是this 即创建的此类对象静态方法是在一个class类上进行标记 通过ReentrantLock加锁创建ReentrantLock对象调用 lock()与 unlock()进行加锁与解锁 通过创建ReentrantLock对象不能给对象加锁 wait()与sleep()的区别 相同点两者都可以让线程进入阻塞状态 不同点sleep()是让线程阻塞指定时间, 到达指定时间都会自己进入就绪状态, 不会释放锁,其他线程无法进入 是Thread类中的方法 通过Thread调用 wait()是让线程进入阻塞状态,不会自己“苏醒”, 需要其他线程通过notify()方法唤醒, 会释放锁,让其他线程进入 是Oject中的方法,通过Oject进行调用 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |