Yes, with a but.
Truncate partition is a blocking DDL operation. This means that there can be no uncommitted transactions against the partition you're truncating.
I'm guessing you're only truncating old partitions subject to no data changes. I which case you can go ahead - you can continue to write changes to all the other partitions.
Just be aware that by default truncate partition leaves any global indexes in an unusable state:
create table t (
c1 int, c2 int
) partition by range ( c1 )
interval ( 10 ) (
partition p0 values less than ( 11 )
);
create index i on t ( c2 );
insert into t
with rws as (
select level x from dual
connect by level <= 100
)
select x, x from rws;
commit;
alter table t
truncate partition p0;
select index_name, status
from user_indexes;
INDEX_NAME STATUS
I UNUSABLE
Which will probably also leave your application in an unusable state!
To avoid this, add the update global indexes clause:
alter index i rebuild;
alter table t
truncate partition p0
update global indexes;
select index_name, status
from user_indexes;
INDEX_NAME STATUS
I VALID