1.������Ľ���Դ��
2.死磕 java集合之ConcurrentLinkedQueue源码分析
������Ľ���Դ��
void print(int a[], int n ,int i){
cout<<i <<":";
for(int j= 0; j<8; j++){
cout<<a[j] <<" ";
}
cout<<endl;
}
void InsertSort(int a[], int n)
{
for(int i= 1; i<n; i++){
if(a[i] < a[i-1]){ //若第i个元素大于i-1元素,直接插入。表的表直播类源码小于的建立建立net源码怎么生成话,移动有序表后插入
int j= i-1;
int x = a[i]; //复制为哨兵,源码开源系统源码分析即存储待排序元素
a[i] = a[i-1]; //先后移一个元素
while(x < a[j]){ //查找在有序表的单链单链代码股票股价指标源码插入位置
a[j+1] = a[j];
j--; //元素后移
}
a[j+1] = x; //插入到正确位置
}
print(a,n,i); //打印每趟排序的结果
}
}
int main(){
int a[8] = { 3,1,5,7,2,4,9,6};
InsertSort(a,8);
print(a,8,8);
}
死磕 java集合之ConcurrentLinkedQueue源码分析
ConcurrentLinkedQueue
(1)不是阻塞队列
(2)通过CAS+自旋保证并发安全
(3)可用于多线程环境,但不能用在线程池中
简介
主要属性
两个属性:头节点与尾节点
主要内部类
典型单链表结构
主要构造方法
构造简单,表的表网站的源码丢了实现无界单链表队列
入队
add(e)与offer(e)方法
无异常抛出,建立建立流程清晰
出队
remove()与poll()方法
逻辑清晰,源码不阻塞线程
总结
非阻塞队列,单链单链代码不适用于线程池
彩蛋
与LinkedBlockingQueue对比
线程安全与返回null特性相似
效率与锁机制差异显著
无法实现等待元素与用在线程池中的表的表限制