java基础

Posted 麦子TMAC

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java基础相关的知识,希望对你有一定的参考价值。

1.使用特殊域变量(volatile)实现线程同步
 
    a.volatile关键字为域变量的访问提供了一种免锁机制, 
    b.使用volatile修饰域相当于告诉虚拟机该域可能会被其他线程更新, 
    c.因此每次使用该域就要重新计算,而不是使用寄存器中的值 
    d.volatile不会提供任何原子操作,它也不能用来修饰final类型的变量 
 
2.同步代码块和同步方法的区别
同步方法只能以当前类对象为锁,而同步代码块可以以任何对象为锁
public class SynchronizeCode {
   public static void main(String[] args) {
       /************ 创建锁对象 ************/
       final Object lock = new Object();
       /************ 开启线程一 ************/
       new Thread() {
           public void run() {
               while (true) {
                   synchronized (lock) {
                       System.out.print("同步");
                       System.out.println("代码");
                   }
               }
           };
       }.start();
       /************ 开启线程二 ************/
       new Thread() {
           public void run() {
               while (true) {
                   synchronized (lock) {
                       System.out.print("Synchronize");
                       System.out.println("Code");
                   }
               }
           };
       }.start();
   }
}
在同步中,可以将某个对象设为锁,当持有锁时,则可以执行方法,反而,如果不持有锁,就会陷入阻塞的状态,等待上一个使用者释放锁,如果上一个使用者一直不释放锁,就会造成死锁

以上是关于java基础的主要内容,如果未能解决你的问题,请参考以下文章

JSP 基础语法

Java基础:封装

[vscode]--HTML代码片段(基础版,reactvuejquery)

JSP开发中的基础语法

Java基础之方法的调用重载以及简单的递归

Java基础——JSP