闭目不言i level
获赞
61
粉丝
0
关注
3
看过 TA
16
东华理工大学
2019
Java
IP属地:上海
暂未填写个人简介
私信
关注
2024-08-16 11:13
已编辑
东华理工大学 Java
Q1.创建线程有哪几种方式?继承Thread类并实现run方法,调用继承类的start方法开启线程;通过实现Runnable接口,重写run方法,调用线程对象的start方法开启线程;通过实现Callable接口,实现call方法,并用FutureTask类包装Callable对象开启线程。Q2.sleep() 和 wait() 有什么区别?sleep后程序不会释放同步锁,wait后程序会释放同步锁sleep可以指定睡眠时间,自动唤醒,wait可以直接用notify唤醒sleep的类是Thread,wait的类是ObjectQ3.synchronized 和 volatile 的区别是什么?volatile本质是在告诉vm当前变量在寄存器(工作内存)中的值是不确定的,需要从主存中读取;synchronize则是锁定当前变量,只有当前线程可以访问该变量,其他线程被阻塞。volatile仅能实现变量的修改可见性,不能保证原子性;synchronize可以保证变量的修改可见性和原子性。volatile不会造成线程的阻塞;synchronize可能会造成线程的阻塞。volatile标记的变量不会被编译器优化,synchronize标记的变量可以被编译器优化Q4.synchronized 和 Lock 有什么区别?synchronized是关键字,属于jvm层面;Lock是具体类,是api层面的锁;synchronized无法获取锁的状态,Lock可以判断;synchronized用于少量同步,Lock用于大量同步。Q5.乐观锁和悲观锁乐观锁:认为每次去拿数据的时候别人不会修改,所以不会上锁,但是每次要提交数据的时候都会先判断数据是否被别人修改悲观锁:认为每次去拿数据的时候别人都会修改,所以每次都会上锁。使用场景:乐观锁使用于多读少写的应用类型,这样可以提高吞吐量;相反的情况则使用悲观锁Q6.tcp 为什么要三次握手,两次不行吗?为什么?两次握手只能保证单向连接是畅通的。只有经过第三次握手,才能确保双向都可以收到对方发送的数据❤【拼多多2025届技术校招】全面启动,6大岗位(base上海),总有一个适合你!📣海量HC,线上笔面试,流程超快;越早投递简历机会越多,快来pick你的offer吧!📣【网申链接】:https://careers.pinduoduo.com/campus/grad/technical-session📣【内推链接】:https://careers.pinduoduo.com/campus/grad?t=iDsAO7bjl4,内推码:iDsAO7bjl4
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务