1. 面向对象和面向过程之间的区别:(2)

电脑杂谈  发布时间:2020-07-18 12:29:06  来源:网络整理

synced关键字可以与wait()和notify()/ notifyAll()方法结合使用以实现wait / notify机制. 当然,也可以实现ReentrantLock类,但是它需要Condition接口和newCondition()方法的帮助. 条件仅在JDK1.5之后可用. 它具有很好的灵活性. 例如,它可以实现多路通知功能,即可以在一个Lock对象中创建多个Condition实例(即对象监视器),并可以在其中注册线程对象. 在指定的Condition中,可以有选择地执行线程通知java多线程避免死锁,并且调度线程更加灵活. 使用notify()/ notifyAll()方法进行通知时,JVM将选择通知的线程. ReentrantLock类与Condition实例结合使用可以实现“选择性通知”. 此功能非常重要,默认情况下由Condition接口提供. synced关键字仅等效于整个Lock对象中的一个Condition实例,并且所有线程都在其上注册. 如果执行notifyAll()方法,它将通知所有处于等待状态的线程. 这将导致很大的效率问题,Condition实例的signalAll()方法将仅唤醒在Condition实例中注册的所有等待线程.

④性能不再是选择标准

谈论同步关键字和易失关键字之间的区别

synchronized关键字和volatile关键字是两个互补的存在,而不是相反的.

volatile关键字是线程同步的轻量级实现,因此volatile性能肯定比synced关键字更好. 但是volatile关键字只能用于变量,而synced关键字可以修改方法和代码块. sync关键字已经在JavaSE1.6之后实现,主要包括引入有偏的锁和轻量级锁以及其他各种优化,以减少由于获取和释放锁而导致的性能消耗. 执行效率得到了显着提高,并且实际开发是: 使用synced关键字还有更多方案.

对volatile关键字的多线程访问将不会被阻止,而synced关键字可能会被阻止

volatile关键字可以保证数据的可见性,但不能保证数据的原子性. 同步关键字可以同时保证两者.

volatile关键字主要用于解决多线程之间变量的可见性,而synced关键字解决多线程之间访问资源的同步.

Runnable接口中的run()方法的返回值是void,它做的事情只是纯粹地去执行run()方法中的代码而已;Callable接口中的call()方法是有返回值的,是一个泛型,和Future、FutureTask配合可以用来获取异步执行的结果。

原子原子类

原子是基于不安全的类和旋转操作实现的

AQS

jvm

tcp / ip

三向握手的目的是建立可靠的通信通道. 在通信方面,它仅仅是数据的发送和接收. 三向握手的主要目的是确认双方之间的发送和接收是否正常. 第一次握手: 建立连接时,客户端向服务器发送一个syn包(syn = j),并进入SYN_SENT状态,等待服务器确认; SYN: 同步序列号.

第二次握手: 当服务器接收到syn数据包时,它必须确认客户端的SYN(ack = j + 1),并且还发送SYN数据包(syn = k),即SYN + ACK数据包,并且服务器进入SYN_RECV状态; <​​/ p>

第三次握手: 客户端从服务器接收SYN + ACK数据包,并将确认数据包ACK(ack = k + 1)发送到服务器. 发送此数据包后,客户端和服务器进入ESTABLISHED(已建立TCP连接)状态以完成三向握手.

四手握手: 数据传输结束后,任何一方都可以发送连接释放通知,并且在另一方确认后进入半关闭状态. 当另一方没有更多数据要发送时,将发出连接释放通知,并且另一方在确认后将完全关闭TCP连接.

1. 基于连接(TCP)和无连接(UDP).

2. TCP需要更多的系统资源,而UDP则更少.

3. UDP程序结构相对简单.

4. 流模式(TCP)和数据报模式(UDP).

5. TCP保证数据的正确性,而UDP可能会丢失数据包.

6. TCP保证数据顺序,但UDP不保证.

7,TCP是面向连接的(例如在拨打电话之前通过拨号建立连接); UDP是无连接的,也就是说,在发送数据之前无需建立连接.

8. TCP提供可靠的服务. 也就是说,通过TCP连接传输的数据没有错误,没有丢失,没有重复并且按顺序到达. UDP尽最大努力进行传送,即不能保证可靠的传送.

9. TCP是面向字节的,实际上TCP将数据视为一系列非结构化的字节流. UDP是面向消息的,没有拥塞控制,因此网络拥塞不会使源主机的发送速率降低(对于IP电话,实时视频会议等实时应用很有用. )

10. 每个TCP连接只能是点对点的. UDP支持,一对多,多对一和多对多交互式通信.

11. TCP标头开销为20个字节; UDP标头开销很小,只有8个字节.

12. TCP的逻辑通信通道是全双工可靠通道,而UDP是不可靠的通道.

DNS解析

TCP连接


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-284713-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...