- The most comprehensive data-driven analysis of European Tech.
- Atomic types provide primitive shared-memory communication between threads, and are the building blocks of other concurrent types.
Atomic types
Atomico invests in innovative technology companies around the world.
Atomic types provide primitive shared-memory communication betweenthreads, and are the building blocks of other concurrenttypes.
This module defines atomic versions of a select number of primitivetypes, including AtomicBool
, AtomicIsize
, AtomicUsize
,AtomicI8
, AtomicU16
, etc.Atomic types present operations that, when used correctly, synchronizeupdates between threads.
Each method takes an Ordering
which represents the strength ofthe memory barrier for that operation. These orderings are thesame as the C++20 atomic orderings. For more information see the nomicon.
Atomic variables are safe to share between threads (they implement Sync
)but they do not themselves provide the mechanism for sharing and follow thethreading model of Rust.The most common way to share an atomic variable is to put it into an Arc
(anatomically-reference-counted shared pointer).
Atomic types may be stored in static variables, initialized usingthe constant initializers like AtomicBool::new
. Atomic staticsare often used for lazy global initialization.
All atomic types in this module are guaranteed to be lock-free if they'reavailable. This means they don't internally acquire a global mutex. Atomictypes and operations are not guaranteed to be wait-free. This means thatoperations like fetch_or
may be implemented with a compare-and-swap loop.
Numero Atomico
Atomic operations may be implemented at the instruction layer withlarger-size atomics. For example some platforms use 4-byte atomicinstructions to implement AtomicI8
. Note that this emulation should nothave an impact on correctness of code, it's just something to be aware of.
The atomic types in this module may not be available on all platforms. Theatomic types here are all widely available, however, and can generally berelied upon existing. Some notable exceptions are:
- PowerPC and MIPS platforms with 32-bit pointers do not have
AtomicU64
orAtomicI64
types. - ARM platforms like
armv5te
that aren't for Linux only provideload
andstore
operations, and do not support Compare and Swap (CAS)operations, such asswap
,fetch_add
, etc. Additionally on Linux,these CAS operations are implemented via operating system support, whichmay come with a performance penalty. - ARM targets with
thumbv6m
only provideload
andstore
operations,and do not support Compare and Swap (CAS) operations, such asswap
,fetch_add
, etc.
Note that future platforms may be added that also do not have support forsome atomic operations. Maximally portable code will want to be carefulabout which atomic types are used. AtomicUsize
and AtomicIsize
aregenerally the most portable, but even then they're not available everywhere.For reference, the std
library requires pointer-sized atomics, althoughcore
does not.
Currently you'll need to use #[cfg(target_arch)]
primarily toconditionally compile in code with atomics. There is an unstable#[cfg(target_has_atomic)]
as well which may be stabilized in the future.
A simple spinlock:
Keep a global count of live threads:
Structs
AtomicBool | A boolean type which can be safely shared between threads. |
AtomicI8 | An integer type which can be safely shared between threads. |
AtomicI16 | An integer type which can be safely shared between threads. |
AtomicI32 | An integer type which can be safely shared between threads. |
AtomicI64 | An integer type which can be safely shared between threads. |
AtomicIsize | An integer type which can be safely shared between threads. |
AtomicPtr | A raw pointer type which can be safely shared between threads. |
AtomicU8 | An integer type which can be safely shared between threads. |
AtomicU16 | An integer type which can be safely shared between threads. |
AtomicU32 | An integer type which can be safely shared between threads. |
AtomicU64 | An integer type which can be safely shared between threads. |
AtomicUsize | An integer type which can be safely shared between threads. |
Enums
Ordering | Atomic memory orderings |
Constants
ATOMIC_I8_INIT | DeprecatedExperimental An atomic integer initialized to |
ATOMIC_I16_INIT | DeprecatedExperimental An atomic integer initialized to |
ATOMIC_I32_INIT | DeprecatedExperimental Antivirus free for mac os x 10.7 5. An atomic integer initialized to |
ATOMIC_I64_INIT | DeprecatedExperimental An atomic integer initialized to |
ATOMIC_U8_INIT | DeprecatedExperimental An atomic integer initialized to |
ATOMIC_U16_INIT | DeprecatedExperimental An atomic integer initialized to |
ATOMIC_U32_INIT | DeprecatedExperimental An atomic integer initialized to |
ATOMIC_U64_INIT | DeprecatedExperimental An atomic integer initialized to |
ATOMIC_BOOL_INIT | Deprecated An |
ATOMIC_ISIZE_INIT | Deprecated An atomic integer initialized to |
ATOMIC_USIZE_INIT | Deprecated An atomic integer initialized to |
Functions
compiler_fence | A compiler memory fence. |
fence | An atomic fence. |
spin_loop_hint | Deprecated Signals the processor that it is inside a busy-wait spin-loop ('spin lock'). |
Atómico | |
---|---|
Directed by | Vladimir Pérez |
Presented by | Alfredo Lovera Mariana Álvarez Joshua García Natalia Moretti Antonella Baricelli (2005-2006 Alex Goncalves (2005-2006) Sheryl Rubio (2005-2006) |
Opening theme | 'Atómico se mueve por ti' |
Country of origin | Venezuela |
Original language | Spanish |
No. of seasons | 2 |
Production | |
Executive producer | Maraba Productions |
Release | |
Original network | Venevisión |
Picture format | 480iSDTV 1080iHDTV |
Original release | March 3, 2014 – present |
Chronology | |
Related shows | El Club de Los Tigritos Rugemania |
External links | |
Web site |
Atómico, is a television show produced by Maraba Productions for Venevisión. Hosted by Alfredo Lovera as Himself, Mariana Álvarez as Herself, Joshua García as Himself and Natalia Moretti Herself.[1]
History[edit]
Atómico it began airing as a similar program to El Club de Los Tigritos and Rugemania with Interactive Games, Music, cartoons, Series. in 2006, the program ended to begin issuing Venevisióntelenovelas.[2] As of March 3, 2014, as established by the 'La ley de resorte de Venezuela', Venevisióntelenovela removed 3 hours to transmit Atómico.[1][3]
Presenters[edit]
- Alfredo Lovera as Himself
- Mariana Álvarez as Herself
- Joshua García as Himself
- Natalia Moretti as Herself
- Antonella Baricelli as Herself (2005-2006)
- Alex Goncalves as Himself (2005-2006)
- Sheryl Rubio as Herself (2005-2006)
Guests[edit]
- Los Hermanos Valentinos (Appear during the circus performance)[4]
Programs broadcast[edit]
Current broadcast[edit]
Programs that are no longer transmitted[edit]
Some of these series are transmitted on Saturday and Sunday Atómico repetitions. Others are issued occasionally.
- No puede ser
- Planet Sheen
Programming 2005-2006[edit]
Atomicor
- Misión S.O.S[2]
- Bayblade en caricaturas[2]
Atomi.com
References[edit]
Www.atomi.com
- ^ ab''Atómico' se apodera de las tardes' (in Spanish). Venevisión. Archived from the original on August 20, 2014. Retrieved August 20, 2014.CS1 maint: discouraged parameter (link)
- ^ abcBlanca Santos. 'TELEVISION / Venevisión retoma su programación para público infantil' (in Spanish). El Universal Caracas. Archived from the original on August 21, 2014. Retrieved August 20, 2014.CS1 maint: discouraged parameter (link)
- ^Aquilino José Mata. 'Nueva tira infantil y juvenil en las tardes de Venevisión' (in Spanish). El Diario de Caracas. Retrieved August 20, 2014.CS1 maint: discouraged parameter (link)
- ^''Atómico' se llena de magia con el Circo de Los Valentinos' (in Spanish). Informe 21. Retrieved August 20, 2014.CS1 maint: discouraged parameter (link)