摘要:
LeetCode第五题: 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1: 输入: "babad" 输出: "bab" 注意: "aba" 也是一个有效答案。 示例 2: 输入: "cbbd" 输出: "bb" 这道题做了是真的久。其实想想并不难。 阅读全文
摘要:
shell基础编程 1创建: 使用 vim 命令创建以.sh结尾的 脚本文件 #!/bin/bash——第一行写上 2执行: 要给脚本可执行权限 直接在命令行输入shell脚本路径(包括后缀) 注意:如不给可执行权限,也可执行,就要在脚本前使用命令sh执行 以后台的方式运行:可在一个脚本中执行另一个 阅读全文
摘要:
linux 常用指令 一、用户管理有关 1.vim编辑器使用 vim 文件名——使用vim打开文件,如不存在则创建 按 i 键进入编辑模式,按esc退出编辑模式 快捷键: yy —— 拷贝当前行 dd—— 删除当前行 5yy ——拷贝当前向下的5行 5dd ——删除当前向下的5行 /单词 ——在文件 阅读全文
摘要:
线程池ThreadPoolExecutor 为什么要使用线程池 我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有 阅读全文
摘要:
线程和进程 线程和进程的概念,并行和并发的概念1、 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指 阅读全文
摘要:
ThreadLocal 该类提供了线程局部(thread-local)变量。这些变量不同于它们的普通对应物,因为访问某个变量(通过其get或set方法)的每个线程都有自己的局部变量,它独立于变量的初始化副本。ThreadLocal实例通常是类中的私人静字段,它们希望将状态与某一个线程(例如,用户ID 阅读全文
摘要:
Exchanger 可以在对中对元素进行配对和交换的线程的同步点。每个线程将条目上的某个方法呈现给交换方法,与伙伴线程进行匹配,并且在返回时接收其伙伴的对象.Exchanger可能被视为SynchronousQueue的双向形式.Exchanger可能在应用程序(比如遗传算法和管道设计)中很有用。 阅读全文
摘要:
信号量Semaphore 信号量Semaphore是一个控制访问多个共享资源的计数器,和CountDownLatch一样,其本质上是一个“共享锁”。 Semaphore 通常用于限制可以访问某些资源(物理或逻辑的)的线程数目。 信号量Semaphore是一个非负整数(>=1)。当一个线程想要访问某个 阅读全文
摘要:
CountDownLatch CountDownLatch与CyclicBarrier有点儿相似。 CyclicBarrier所描述的是“允许一组线程互相等待,直到到达某个公共屏障点,才会进行后续任务”,而CountDownLatch所描述的是”在完成一组正在其他线程中执行的操作之前,它允许一个或多 阅读全文
摘要:
Condition Condition提供了一系列的方法来对阻塞和唤醒线程: await() :造成当前线程在接到信号或被中断之前一直处于等待状态。 await(long time, TimeUnit unit) :造成当前线程在接到信号、被中断或到达指定等待时间之前一直处于等待状态。 awaitN 阅读全文