There is no special syntax for multiprocessing.Value , it's just a class like any other. The signature of the Value constructor is perfectly described:
multiprocessing.Value(typecode_or_type, *args[, lock])
Returns a ctypes object allocated from shared memory. By default, the return value is actually a synchronized wrapper for the object.
typecode_or_type determines the type of the returned object: it is either a ctypes type or a single character type of the type of the type being used using the array module. *args is passed to the constructor for type.
If lock is True (default), then a new lock object is created to synchronize access to the value. If the lock is lock or RLock , then this will be used to synchronize access to cost. If lock is False , then access to the returned object will not be automatically protected by the lock, so this is not necessary to be a "safe process".
You even have a few use cases. In particular, typecode_or_type can be one of the typecodes listed in the documentation for the array module (for example, 'i' for signed integer, 'f' for float, etc.) or the type ctypes , for example ctypes.c_int , etc. .
If you want to have a Value containing one letter you can do:
>>> import multiprocessing as mp >>> letter = mp.Value('c', 'A') >>> letter <Synchronized wrapper for c_char('A')> >>> letter.value 'A'
Update
The problem with your code is that typecode 'c' means the string is not . If you want to save the string, you can use the ctypes.c_char_p type:
>>> import multiprocessing as mp >>> import ctypes >>> v = mp.Value('c', "Hello, World!") Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python2.7/multiprocessing/__init__.py", line 253, in Value return Value(typecode_or_type, *args, **kwds) File "/usr/lib/python2.7/multiprocessing/sharedctypes.py", line 99, in Value obj = RawValue(typecode_or_type, *args) File "/usr/lib/python2.7/multiprocessing/sharedctypes.py", line 73, in RawValue obj.__init__(*args) TypeError: one character string expected >>> v = mp.Value(ctypes.c_char_p, "Hello, World!") >>> v <Synchronized wrapper for c_char_p(166841564)> >>> v.value 'Hello, World!'