原创 (My)SQL DDL語句

SQL語句主要可以分爲以下3個類別: 1:DDL語句:數據定義語言。常用關鍵字主要包括create、drop、alter等。 2:DML語句:數據操縱語言,用於添加、刪除、更新、查找。其只對表內部數據進行操作,而不涉及表的定義和結

原创 java 線程之間的協作(顯示的Lock和Conditon對象)學習筆記

在java SE5的java.util.concurrent類庫中還有額外的顯示工具可以用來重寫 MaxOMatic.java 使用互斥並允許任務掛起的基本類是Condition,你可以通過在Condition上調用await()

原创 java synchronized和Lock的區別

synchronized和Lock的區別

原创 Java 線程原子性,可見性,有序性

原子性,可見性,有序性 原子性可以應用於除long和double之外的所有基本類型之上的簡單操作(簡單的賦值和返回操作)。

原创 java synchronized關鍵字學習筆記

synchronized(同步鎖)關鍵字是用來解決共享資源的競爭問題。基本上所有的併發模式在解決線程衝突問題時,都是採用序列化訪問共享資源的方案。這意味着在任意時刻,只允許一個任務訪問共享資源。通常這是通過在代碼前加上一條鎖語句來

原创 吉林大學ACM集訓隊選拔賽(重現賽)B題

題意:一個序列找出一個集合,和最大且能被5整除。 思路:dp選和不選的問題。 opt[i][j]表示前i項中選任意個,sum%5=j的最大值。 1.不選第i個數,當前餘j的最優解就是前面一個狀態餘j的最優解。 2.選第i個數,那麼

原创 java Volatile關鍵字

Volatile修飾的成員變量在每次被線程訪問時,都強迫從共享內存中重讀該成員變量的值。 而且,當成員變量發生變化時,強迫線程將變化值回寫到共享內存。 這樣在任何時刻,兩個不同的線程總是看到某個成員變量的同一個值。 Java語言規

原创 廈門大學“網宿杯“17屆程序設計競賽決賽(同步賽)

F題 題意:讓你構造出一個長度爲n的序列滿足其中任意一個子集的和不爲n。 結論: 1.如果n爲奇數則答案爲1,1,…1,n+1和2,2,2…2 2.如果n爲偶數則答案爲1,1,…1,n+1

原创 Java併發框架Excecutor

Java SE5的java.util.concurrent包中的執行器(Executor)將爲你管理Thread對象,從而簡化了併發編程。Executor在客戶端和執行任務之間提供了一個間接層,Executor代替客戶端執行任務。

原创 捕獲異常(線程)學習筆記

由於線程的本質,使得你不能捕獲從線程中逃逸出來的異常。一旦異常逃出任務的run()方法,它就會向外傳播到控制檯,除非採取特殊的步驟捕獲這種錯誤的異常。在java SE5之前,可以用線程組捕獲異常,但是有了java SE5,就可以用

原创 java進程與線程

進程與線程的區別 程序的概念:程序是指令的有序集合,是一個靜態概念,本身是沒有任何運行的含義。 進程概念:進程是程序在處理機上的一次動態執行過程,它經歷了從代碼加載、執行到執行完畢的一個完整過程。 線程概念:線程是進程的一個實體,

原创 java 原子類學習筆記

java SE5引入了諸如AtomicInteger、AtomicLong、AtomicReference等特殊的原子性變量類。這些類是在機器級別上的原子性。在常規編程中它們很少派上用場,但在性能調優中,就大有用武之地。 publ

原创 A*算法學習筆記

A*算法基本原理 A-star算法是一種靜態路網中求解最短路徑最有效的直接搜索方法,也是解決許多搜索問題的有效算法。算法中的距離估算值與實際值越接近,最終搜索速度越快。 F[i]=G[i]+H[i]; 這是A*算法的核心表達式,即

原创 java後臺線程學習筆記

所謂後臺(daemon)線程,是指程序運行的時候在後臺提供一種通用服務的線程,並且這種線程並不屬於程序中不可或缺的部分。因此,當所有的非後臺線程結束時,程序也就終止了,同時會殺死進程中的所有非後臺線程。比如,執行main()的就是

原创 java中Thread的sleep() 與yield()區別,yield()與join()區別

sleep() 與yield() 1.sleep()方法給其他線程運行機會的時候,不考慮線程的優先級,因此當高優先級線程sleep()後,低優先級任務有機會運行;但是yield()只會給同優先級或更高優先級線程運行的機會,甚至可能