开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
master
分支 (1)
master
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
项目仓库所选许可证以仓库主分支所使用许可证为准
master
分支 (1)
master
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
master
分支 (1)
master
package-info.java 12.62 KB
一键复制 编辑 原始数据 按行查看 历史
gwdcode 提交于 2020年10月30日 22:13 +08:00 . 常用普通java包(jdk11.0.2)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307
/*
* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
/*
*
*
*
*
*
* Written by Doug Lea with assistance from members of JCP JSR-166
* Expert Group and released to the public domain, as explained at
* http://creativecommons.org/publicdomain/zero/1.0/
*/
/**
* Utility classes commonly useful in concurrent programming. This
* package includes a few small standardized extensible frameworks, as
* well as some classes that provide useful functionality and are
* otherwise tedious or difficult to implement. Here are brief
* descriptions of the main components. See also the
* {@link java.util.concurrent.locks} and
* {@link java.util.concurrent.atomic} packages.
*
* <h2>Executors</h2>
*
* <b>Interfaces.</b>
*
* {@link java.util.concurrent.Executor} is a simple standardized
* interface for defining custom thread-like subsystems, including
* thread pools, asynchronous I/O, and lightweight task frameworks.
* Depending on which concrete Executor class is being used, tasks may
* execute in a newly created thread, an existing task-execution thread,
* or the thread calling {@link java.util.concurrent.Executor#execute
* execute}, and may execute sequentially or concurrently.
*
* {@link java.util.concurrent.ExecutorService} provides a more
* complete asynchronous task execution framework. An
* ExecutorService manages queuing and scheduling of tasks,
* and allows controlled shutdown.
*
* The {@link java.util.concurrent.ScheduledExecutorService}
* subinterface and associated interfaces add support for
* delayed and periodic task execution. ExecutorServices
* provide methods arranging asynchronous execution of any
* function expressed as {@link java.util.concurrent.Callable},
* the result-bearing analog of {@link java.lang.Runnable}.
*
* A {@link java.util.concurrent.Future} returns the results of
* a function, allows determination of whether execution has
* completed, and provides a means to cancel execution.
*
* A {@link java.util.concurrent.RunnableFuture} is a {@code Future}
* that possesses a {@code run} method that upon execution,
* sets its results.
*
* <p>
*
* <b>Implementations.</b>
*
* Classes {@link java.util.concurrent.ThreadPoolExecutor} and
* {@link java.util.concurrent.ScheduledThreadPoolExecutor}
* provide tunable, flexible thread pools.
*
* The {@link java.util.concurrent.Executors} class provides
* factory methods for the most common kinds and configurations
* of Executors, as well as a few utility methods for using
* them. Other utilities based on {@code Executors} include the
* concrete class {@link java.util.concurrent.FutureTask}
* providing a common extensible implementation of Futures, and
* {@link java.util.concurrent.ExecutorCompletionService}, that
* assists in coordinating the processing of groups of
* asynchronous tasks.
*
* <p>Class {@link java.util.concurrent.ForkJoinPool} provides an
* Executor primarily designed for processing instances of {@link
* java.util.concurrent.ForkJoinTask} and its subclasses. These
* classes employ a work-stealing scheduler that attains high
* throughput for tasks conforming to restrictions that often hold in
* computation-intensive parallel processing.
*
* <h2>Queues</h2>
*
* The {@link java.util.concurrent.ConcurrentLinkedQueue} class
* supplies an efficient scalable thread-safe non-blocking FIFO queue.
* The {@link java.util.concurrent.ConcurrentLinkedDeque} class is
* similar, but additionally supports the {@link java.util.Deque}
* interface.
*
* <p>Five implementations in {@code java.util.concurrent} support
* the extended {@link java.util.concurrent.BlockingQueue}
* interface, that defines blocking versions of put and take:
* {@link java.util.concurrent.LinkedBlockingQueue},
* {@link java.util.concurrent.ArrayBlockingQueue},
* {@link java.util.concurrent.SynchronousQueue},
* {@link java.util.concurrent.PriorityBlockingQueue}, and
* {@link java.util.concurrent.DelayQueue}.
* The different classes cover the most common usage contexts
* for producer-consumer, messaging, parallel tasking, and
* related concurrent designs.
*
* <p>Extended interface {@link java.util.concurrent.TransferQueue},
* and implementation {@link java.util.concurrent.LinkedTransferQueue}
* introduce a synchronous {@code transfer} method (along with related
* features) in which a producer may optionally block awaiting its
* consumer.
*
* <p>The {@link java.util.concurrent.BlockingDeque} interface
* extends {@code BlockingQueue} to support both FIFO and LIFO
* (stack-based) operations.
* Class {@link java.util.concurrent.LinkedBlockingDeque}
* provides an implementation.
*
* <h2>Timing</h2>
*
* The {@link java.util.concurrent.TimeUnit} class provides
* multiple granularities (including nanoseconds) for
* specifying and controlling time-out based operations. Most
* classes in the package contain operations based on time-outs
* in addition to indefinite waits. In all cases that
* time-outs are used, the time-out specifies the minimum time
* that the method should wait before indicating that it
* timed-out. Implementations make a &quot;best effort&quot;
* to detect time-outs as soon as possible after they occur.
* However, an indefinite amount of time may elapse between a
* time-out being detected and a thread actually executing
* again after that time-out. All methods that accept timeout
* parameters treat values less than or equal to zero to mean
* not to wait at all. To wait "forever", you can use a value
* of {@code Long.MAX_VALUE}.
*
* <h2>Synchronizers</h2>
*
* Five classes aid common special-purpose synchronization idioms.
* <ul>
*
* <li>{@link java.util.concurrent.Semaphore} is a classic concurrency tool.
*
* <li>{@link java.util.concurrent.CountDownLatch} is a very simple yet
* very common utility for blocking until a given number of signals,
* events, or conditions hold.
*
* <li>A {@link java.util.concurrent.CyclicBarrier} is a resettable
* multiway synchronization point useful in some styles of parallel
* programming.
*
* <li>A {@link java.util.concurrent.Phaser} provides
* a more flexible form of barrier that may be used to control phased
* computation among multiple threads.
*
* <li>An {@link java.util.concurrent.Exchanger} allows two threads to
* exchange objects at a rendezvous point, and is useful in several
* pipeline designs.
*
* </ul>
*
* <h2>Concurrent Collections</h2>
*
* Besides Queues, this package supplies Collection implementations
* designed for use in multithreaded contexts:
* {@link java.util.concurrent.ConcurrentHashMap},
* {@link java.util.concurrent.ConcurrentSkipListMap},
* {@link java.util.concurrent.ConcurrentSkipListSet},
* {@link java.util.concurrent.CopyOnWriteArrayList}, and
* {@link java.util.concurrent.CopyOnWriteArraySet}.
* When many threads are expected to access a given collection, a
* {@code ConcurrentHashMap} is normally preferable to a synchronized
* {@code HashMap}, and a {@code ConcurrentSkipListMap} is normally
* preferable to a synchronized {@code TreeMap}.
* A {@code CopyOnWriteArrayList} is preferable to a synchronized
* {@code ArrayList} when the expected number of reads and traversals
* greatly outnumber the number of updates to a list.
*
* <p>The "Concurrent" prefix used with some classes in this package
* is a shorthand indicating several differences from similar
* "synchronized" classes. For example {@code java.util.Hashtable} and
* {@code Collections.synchronizedMap(new HashMap())} are
* synchronized. But {@link
* java.util.concurrent.ConcurrentHashMap} is "concurrent". A
* concurrent collection is thread-safe, but not governed by a
* single exclusion lock. In the particular case of
* ConcurrentHashMap, it safely permits any number of
* concurrent reads as well as a large number of concurrent
* writes. "Synchronized" classes can be useful when you need
* to prevent all access to a collection via a single lock, at
* the expense of poorer scalability. In other cases in which
* multiple threads are expected to access a common collection,
* "concurrent" versions are normally preferable. And
* unsynchronized collections are preferable when either
* collections are unshared, or are accessible only when
* holding other locks.
*
* <p id="Weakly">Most concurrent Collection implementations
* (including most Queues) also differ from the usual {@code java.util}
* conventions in that their {@linkplain java.util.Iterator Iterators}
* and {@linkplain java.util.Spliterator Spliterators} provide
* <em>weakly consistent</em> rather than fast-fail traversal:
* <ul>
* <li>they may proceed concurrently with other operations
* <li>they will never throw {@link java.util.ConcurrentModificationException
* ConcurrentModificationException}
* <li>they are guaranteed to traverse elements as they existed upon
* construction exactly once, and may (but are not guaranteed to)
* reflect any modifications subsequent to construction.
* </ul>
*
* <h2 id="MemoryVisibility">Memory Consistency Properties</h2>
*
* <a href="https://docs.oracle.com/javase/specs/jls/se8/html/jls-17.html#jls-17.4.5">
* Chapter 17 of
* <cite>The Java&trade; Language Specification</cite></a> defines the
* <i>happens-before</i> relation on memory operations such as reads and
* writes of shared variables. The results of a write by one thread are
* guaranteed to be visible to a read by another thread only if the write
* operation <i>happens-before</i> the read operation. The
* {@code synchronized} and {@code volatile} constructs, as well as the
* {@code Thread.start()} and {@code Thread.join()} methods, can form
* <i>happens-before</i> relationships. In particular:
*
* <ul>
* <li>Each action in a thread <i>happens-before</i> every action in that
* thread that comes later in the program's order.
*
* <li>An unlock ({@code synchronized} block or method exit) of a
* monitor <i>happens-before</i> every subsequent lock ({@code synchronized}
* block or method entry) of that same monitor. And because
* the <i>happens-before</i> relation is transitive, all actions
* of a thread prior to unlocking <i>happen-before</i> all actions
* subsequent to any thread locking that monitor.
*
* <li>A write to a {@code volatile} field <i>happens-before</i> every
* subsequent read of that same field. Writes and reads of
* {@code volatile} fields have similar memory consistency effects
* as entering and exiting monitors, but do <em>not</em> entail
* mutual exclusion locking.
*
* <li>A call to {@code start} on a thread <i>happens-before</i> any
* action in the started thread.
*
* <li>All actions in a thread <i>happen-before</i> any other thread
* successfully returns from a {@code join} on that thread.
*
* </ul>
*
* The methods of all classes in {@code java.util.concurrent} and its
* subpackages extend these guarantees to higher-level
* synchronization. In particular:
*
* <ul>
*
* <li>Actions in a thread prior to placing an object into any concurrent
* collection <i>happen-before</i> actions subsequent to the access or
* removal of that element from the collection in another thread.
*
* <li>Actions in a thread prior to the submission of a {@code Runnable}
* to an {@code Executor} <i>happen-before</i> its execution begins.
* Similarly for {@code Callables} submitted to an {@code ExecutorService}.
*
* <li>Actions taken by the asynchronous computation represented by a
* {@code Future} <i>happen-before</i> actions subsequent to the
* retrieval of the result via {@code Future.get()} in another thread.
*
* <li>Actions prior to "releasing" synchronizer methods such as
* {@code Lock.unlock}, {@code Semaphore.release}, and
* {@code CountDownLatch.countDown} <i>happen-before</i> actions
* subsequent to a successful "acquiring" method such as
* {@code Lock.lock}, {@code Semaphore.acquire},
* {@code Condition.await}, and {@code CountDownLatch.await} on the
* same synchronizer object in another thread.
*
* <li>For each pair of threads that successfully exchange objects via
* an {@code Exchanger}, actions prior to the {@code exchange()}
* in each thread <i>happen-before</i> those subsequent to the
* corresponding {@code exchange()} in another thread.
*
* <li>Actions prior to calling {@code CyclicBarrier.await} and
* {@code Phaser.awaitAdvance} (as well as its variants)
* <i>happen-before</i> actions performed by the barrier action, and
* actions performed by the barrier action <i>happen-before</i> actions
* subsequent to a successful return from the corresponding {@code await}
* in other threads.
*
* </ul>
*
* @since 1.5
*/
package java.util.concurrent;
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

发行版

暂无发行版

贡献者

全部

语言

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/gwdcode/jdk11.0.2lib.src.java.base.java.git
git@gitee.com:gwdcode/jdk11.0.2lib.src.java.base.java.git
gwdcode
jdk11.0.2lib.src.java.base.java
JDK11.0.2-lib.src.java.base.java
master
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /