自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 Java并发笔记线程池

线程池 线程池的优势 降低资源消耗,通过重复利用已创建的线程降低线程创建和销毁造成的消耗 提高响应速度,当任务到达时,任务可以不需要等到线程创建就能立即执行 提高线程的可管理性,线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。但是要做到合理的利用线程池,必须对其原理了如指掌。 演示代码 public class Dem...

2019-10-08 22:08:21 192

原创 java并发笔记继续

提前完成任务之Future的使用 简单用法: public class Demo { public static void main(String[] args) { Callable<Integer> call = new Callable<Integer>() { @Override public Integer call() throws Excep...

2019-10-07 16:50:03 165

原创 线程之间的通信2

ThreadLocal原理与使用 每一个线程ThreadLocal都会为其保存一个局部变量 public class Demo { private ThreadLocal<Integer> count = new ThreadLocal<Integer>() { protected Integer initialValue() { return new Inte...

2019-10-04 20:59:04 199

原创 线程之间的通信1

线程之间可能有依赖,如一个线程需要另一个线程的结果,或线程间有数据交互,所以需要通信 下面一段代码 public class Demo { private volatile int signal; public void set(int value) { this.signal = value; } public int get() { return signal; } pub...

2019-10-02 14:00:09 158

原创 Java并发总结3-AQS

AbstractQueuedSynchronizer(AQS)详解 AQS是以后学习的锁,同步容器的基础

2019-09-30 22:09:51 141

原创 Java并发编程总结2

重入锁 比如,两个方法都是使用同一个对象锁的,一个线程可以在第一个上锁的方法中去执行第二个上锁的方法 public class Demo1 { public synchronized void a() { System.out.println("a"); b(); } public synchronized void b() { System.out.println("b"); ...

2019-09-27 21:43:07 133

原创 Java并发编程总结1

Synchronized原理与使用 内置锁,互斥锁 修饰普通方法/静态方法/代码块 用javap -verbose ***.class查看字节码指令 Synchronized字节码指令用monitorinter与monitorexit 对象头部的信息 Mark Word(锁的信息就在这里) Class Metadata Address Array Length 偏向...

2019-09-27 10:38:14 123

原创 阿里春季实习机考的一道题,分配奖金

题目大概是这样,小明和小华分奖金有独特的方法,由一个程序来决定奖金的归属,首先产生一列数组,值在0到1之间,p1,p2,…pn,首先是以p1概率小明抽到全部奖金,若没有,则小华以p2概率抽奖金,以此类推,一旦奖金分配,则程序停止,如果n次还没有分配出去,则从p1从新开始,若上轮最后一次是某人,则这轮开始是另一个人,直到100轮,若还是没有分配出去,则放弃奖金 输入N+1行,第一行是整数n,然后n行...

2019-04-13 13:40:02 398

原创 华为19春实习的一道机考题,求蜜蜂的总距离最短

简单的叙述一下题 #include<iostream> #include<string> #include<algorithm> using namespace std; class point { public: point(){} point(int m_x, int m_y) { x = m_x; y = m_y; } public: in...

2019-03-29 20:59:26 833 1

原创 华为的一道机考题,大端与小端

现定义一种字符编码,其编码格式如下: 第一个字符表示后续8个字符序(字符‘0’表示小端,字符‘1’表示大端) 后续8个字符,每个字符代表一个字节 编码解析之后字符串采用大端模式 例如编码组“012345678”,解析之后的大端字符串为“87654321”,编码组“112345678”,解析之后的大端字符串为“12345678” 一次可以连续输入很多个编码组 很简答,代码如下 #include &l...

2019-03-28 14:01:36 2146

原创 实现二叉树的前中后遍历

1.实现二叉树的前中后遍历 #include&lt;iostream&gt; #include&lt;queue&gt; using namespace std; template&lt;class T&gt; struct binaryTreeNode{ T element; binaryTreeNode *leftChild, *rightChild; binaryTreeNode...

2019-03-23 16:22:12 171

原创 头条实习招聘的一道机考题,分配奖品数

#include<iostream> #include<algorithm> using namespace std; void compute(int** p, int* n, int a){ int *sum = new int[a]; memset(sum, 0, sizeof(int)*a); for (int m = 0; m < a; m++){ ...

2019-03-23 16:20:39 510

原创 Leetcode290.单词模式

输出: false 示例 3: 输入: pattern = “aaaa”, str = “dog cat cat dog” 输出: false 示例 4: 输入: pattern = “abba”, str = “dog dog dog dog” 输出: false 说明: 你可以假设 pattern 只包含小写字母, str 包含了由单个空格分隔的小写字母。 以下用了map,字母作为键值与相对应...

2019-03-20 15:39:38 146

原创 任务4实现

1.实现一个基于链表法解决冲突问题的散列表 自己编了将近一天,改了又改,修了又修,发现自己的基础知识还是薄弱,最后还是失败了,无奈,先把自己编的错误的带码放上去留个纪念,有时间一定要改出来 还是得出一个重要结论,自己没那么强时最好先不要使用类模板 #include&amp;lt;iostream&amp;gt; #include&amp;lt;string&amp;gt; #include&amp;lt;functional&amp;gt; u...

2019-03-07 22:15:17 159

原创 任务3实现

1.归并排序 这种排序的示意图很好理解,可是到了代码实现的阶段,却很有难度,看了很久才看懂起其中的逻辑。 #include&amp;amp;lt;iostream&amp;amp;gt; using namespace std; void Merge(int space[], int lastspace[], int low, int mid, int high){ int i = low; int j = mid + 1;...

2019-03-05 21:37:26 184

原创 任务2实现

1.用数组实现一个栈,用了一个多小时····不过还算顺利,全部代码如下 #include&amp;amp;amp;lt;iostream&amp;amp;amp;gt; using namespace std; template&amp;amp;amp;lt;typename T &amp;amp;amp;gt; class arrayStack{ public: arrayStack(){ capacity = 5; size = 0;

2019-03-03 14:45:56 162

原创 循环链表的实现

如下全部: #include&lt;iostream&gt; using namespace std; class Node { public: Node *next; int data; }; class circleList{ public: circleList() { head = new Node(); head-&gt;next = head; head-&gt;...

2019-02-28 16:36:26 211

原创 单链表的实现

因为今天没有时间了,只实现了一些简单的操作,功能还不全,有待增强 1.头文件 #ifndef List #define List class Node{ public: int date; Node *next; }; class Linklist{ public: Linklist(); ~Linklist(); int getLength(); bool insertElem(in...

2019-02-28 15:59:51 157

原创 合并两个有序数组为一个

数组传入函数体变为形参退化为指针,所以在函数外求了数组的长度 #include&lt;iostream&gt; #include&lt;string&gt; using namespace std; int* mergeTwoList(int *list1,int len1, int *list2,int len2) { if (list1 == NULL || list2 == NULL) ...

2019-02-28 13:17:08 143

原创 实现任意类型可扩容数组

1.头文件array.h #define array template &amp;lt;class T&amp;gt; class array{ private: int length; int size; T *base; public: bool init(); bool EnsureFul(); bool add(T item); bool insert(int index, T item)...

2019-02-28 13:12:35 304

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除