json format 256 byte maximum
'aps' namespace
An alert message to display to the user
A number to badge the application icon with
A sound to play
custom payload
Android C2DM - sg90841님 블로그
Big Endian | ||||||||
---|---|---|---|---|---|---|---|---|
8 bit: | C | o | m | p | u | t | e | r |
16 bit: | Co | mp | ut | er | ||||
32 bit: | Comp | uter | ||||||
Little Endian | ||||||||
8 bit: | r | e | t | u | p | m | o | C |
16 bit: | er | ut | mp | Co | ||||
32 bit: | uter | Comp |
http://yonghyuk.pe.kr/2681728
Big-endian: UNIX(RISC), Network 상의 Byte-Order 표준
Little-endian: Intel 기반 PC (CISC)
Maven Centrol Repository
Caching: Memcached and TerracottaApplications are generally built with an expected user base but soon might be overwhelmed due to business demand. This is especially particularly true in the context of consumer facing applications. Caching is one of the most important aspect to improve application performance by storing object in Cache (memory) reducing database load. Caching in a clustered environment requires a Distributed Caching solution which can support failover scenarios and data reliability. In this post I would like to explore the capabilities of Memcached and Terracotta as distributed caching solutions. Memcached is a high-performance distributed object caching system with client APIs for Perl, PHP, Python, Ruby and Java. Here are some of its capabilities and limitations (using Java client API):
Terracotta is an open-source Java based clustering solution for JVM. Distributed Caching can be achieved using Terracotta by using a java.util.HashMap or open-source caching solutions like EHCache, OSCache and JBoss TreeCache.
|
Part 1. * TimeUnit : 시간 단위, TimeUnit.SECOND, TimeUnit.MILLISECOND * CopyOnWriteArrayList : read often, write rarely * BlockingQueue : queue.take() method 호출했을 때, Queue가 비어있으면 계속 기다린다 * ConcurrentMap : ConcurrentHashMap * SynchronousQueues : BlockingQueue와 같고, 기다리는 consumner가 있어야만, producer가 insert할 수 있다 Part 2. * Semaphore : new Semaphore(3), sem.acquire(), sem.release() * CountDownLatch : new CountDownLatch(5), start.await(), start.countDown() * Executor, ExecutorService, ScheduledExecutorService : run Runnable or Callable, No fussing with Thread. |
Overview of Concurrency Utilities
Task scheduling framework : Executor
Concurrent collections
Atomic variables Synchronizers : semaphore, mutex, barrier, latch, exchanger Locks : limitation of built-in monitor, synchronized Nanosecond-granurity
java.util.concurrent package
Semaphore : A classic concurrency tool
CyclicBarrier : A resettable multiway synchronization point CountDownLatch : A utility for blocking until a given number of signals, events, or conditions hold. Exchanger : Allows two thread to exchange objects at a rendezvous point, and can be useful in pipeline designs.
java.util.concurrent.locks
AtomicInteger number = new AtomicInteger(); number.getAndIncrement(); |
:
).:
).
A key property list written as a String is a comma-separated
list of elements. Each element is either an asterisk or a key
property. A key property consists of a key, an equals
(=
), and the associated value.
<Connector port="8080" address="${jboss.bind.address}" maxThreads="250" maxHttpHeaderSize="8192" emptySessionPath="true" protocol="HTTP/1.1" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="utf-8"/> |
<Connector port="8080" address="${jboss.bind.address}" maxThreads="250" strategy="ms" maxHttpHeaderSize="8192" emptySessionPath="true" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/> |