The synchronized keyword can be used as a modifier to specify thread-safe methods, and as a statement to specify critical sections of code. Used as a method modifier, synchronized indicates that the method should only be available to one thread at a time. Used as a statement, synchronized is followed by an expression in parentheses and a block of statements. If the expression within parentheses evaluates to an object type or array, the program obtains a lock on the item before executing the statement block.